在使用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理念图