Spring-DAO理念

在使用Spring中的DAO框架访问数据库时,无需特定的数据库技术,只要通过一个数据访问接口来操作就好。

一.建立数据库database,表明tb_user

CREATE TABLE `tb_user` (

  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

  `name` varchar(45) NOT NULL,

  `age` int(10) unsigned NOT NULL,

  `sex` varchar(45) NOT NULL,

  PRIMARY KEY (`id`)

)

二、建立在src下建立包并建立applicationContext.xml

1.dao包

1.1建立 UerDAOImpl.java(接口类)

1.2建立UerDAO.java(实现UerDAOImpl.java接口)

2.main包

2.1建立main.java(主函数)

3.user包

3.1建立User.java(bean类)

三在WEB-INF下的lib导入jar包

1.aopalliance.jar(这个包是AOP联盟的API包,里面包含了针对面向切面的接口。)

2.commons-logging.jar(Commons Logging (JCL)提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于具体的日志实现工具。)

3.mysql-connector-java-5.1.20-bin.jar

4.org.springframework.asm-3.1.1.RELEASE.jar

5.org.springframework.beans-3.1.1.RELEASE.jar(Spring IoC的基础的实现)

6.org.springframework.core-3.1.1.RELEASE.jar(Spring 的核心模块)

7.org.springframework.jdbc-3.1.1.RELEASE.jar(Spring 的JDBC模块)

四、以下是程序

1.UerDAOImpl.java

package com.mr.dao;

import com.mr.user.User;

public interface UserDAOImpl {

public void inserUser(User user);//添加用户信息的方法

}

2.UerDAO.java

package com.mr.dao;

import com.mr.user.User;

import javax.sql.DataSource;

import java.sql.Connection;

import java.sql.SQLException;

import java.sql.Statement;

public class UserDAOimplements UserDAOImpl {

private DataSourcedataSource;//注入DataSource

    public DataSource getDataSource() {

return dataSource;

}

public void setDataSource(DataSource dataSource) {

this.dataSource = dataSource;

}

//向数据表tb_user中添加数据

    public void inserUser(User user) {

String name = user.getName();//获取姓名

        Integer age = user.getAge();//获取年龄

        String sex = user.getSex();//获取性别

        Connection conn =null;//定义Connection

        Statement stmt =null;//定义Statement

        try {

conn =dataSource.getConnection();//获取数据库连接

            stmt = conn.createStatement();

stmt.execute("INSERT INTO tb_user (name,age,sex) "

                  +"VALUES('"+name+"','" + age +"','" + sex +"')");//添加数据的SQL语句

        }catch (SQLException e) {

e.printStackTrace();

}

finally {

if(stmt !=null) {

try {

stmt.close();//关闭Statement对象

                }

catch(SQLException e) {

e.printStackTrace();

}

}

if(conn !=null) {

try {

conn.close();//关闭数据库连接

                }

catch(SQLException e) {

e.printStackTrace();

}

}

}

}

}

3.User.java

package com.mr.user;

public class User {

private Integerid;//唯一性标识

    private Stringname;//姓名

    private Integerage;//年龄

    private Stringsex;//性别

    public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

}

4.main.java

package com.mr.main;

import org.springframework.beans.factory.BeanFactory;

import org.springframework.beans.factory.xml.XmlBeanFactory;

import org.springframework.core.io.ClassPathResource;

import org.springframework.core.io.Resource;

import com.mr.dao.UserDAO;

import com.mr.user.User;

public class Manager {

public static void main(String[] args) {

Resource resource =new ClassPathResource("applicationContext.xml");//装载配置文件

        BeanFactory factory =new XmlBeanFactory(resource);

User user =new User();//实例化User对象

        user.setName("明日");//设置姓名

        user.setAge(new Integer(30));//设置年龄

        user.setSex("男");//设置性别

        UserDAO userDAO = (UserDAO) factory.getBean("userDAO");//获取UserDAO

        userDAO.inserUser(user);//执行添加方法

        System.out.println("数据添加成功!!!");

}

}

六、运行结果



七、整个Spring-DAO理念图

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,374评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,929评论 18 399
  • 通过之前的两篇我们能在本地搭建单一和集群两种方式的dubbo服务,这篇我们来看 springmvc+spring+...
    安琪拉_4b7e阅读 6,584评论 0 6
  • 想大哭一场,可是视乎不能实现自己这个想法,这几天真的好烦,毕业,就业,压力,科二挂了,英语四已经考了两次了,第三次...
    鱼啊疼阅读 1,033评论 0 0
  • 风穿过花道 像是 要给花朵一个拥抱 又像是 在低声倾诉一路的见闻 花朵们羞涩又矜持 小脸因紧张而微微发烫 没办法 ...
    绿腰_阅读 1,176评论 0 0