spring整合JDBC_01_实现增删改查
1、导入Spring依赖和数据库的驱动包
不知道如何创建,到官网文档搜索DBCP config
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring_jdbc_test
jdbc.root=root
jdbc.password=root
5、在SpringBean.xml中导入相应的Properties文件
完整的SpringBean.xml
6、创建User类
package com.chb.spring_jdbc.model;
public class User{
private int id;
private String username;
private String password;
private String nickname;
public User(String username, String password, String nickname) {
super();
this.username = username;
this.password = password;
this.nickname = nickname;
}
public User() {}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
}
7、在数据库中创建对应的表
CREATE DATABASE spring_jdbc_test;
USE spring_jdbc_test;
CREATE TABLE t_user(
id INT(10) AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
`password` VARCHAR(20),
nickname VARCHAR(50)
);
8、创建Dao接口
package com.chb.spring_jdbc.dao;
import java.util.List;
import com.chb.spring_jdbc.model.User;
public interface IUserDao{
public void add(User user);
public void update(User user);
public void delete(int id);
public void load(int id);
public List list(String sql);
}
9、创建Dao的实现了UserDao,并创建一个JdbcTemplate对象,为了方便完成对数据库的操作。
10、为UserDao注入DataSource, 并创建JdbcTemplate
@GeneratedValue(strategy = GenerationType.IDENTITY)
11、完成数据对象的添加
报错:The type org.springframework.dao.DataAccessException cannot be resolved. It is indirectly referenced from required .class files
原因:缺少spring-tx-4.3.8.RELEASE.jar
public void add(User user) {
jdbcTemplate.update("INSERT INTO t_user (username, password, nickname) VALUE (?, ?, ?)",
user.getUsername(), user.getPassword(), user.getNickname());
}
修改对象
public void update(User user) {
jdbcTemplate.update("update t_user set username=?, password=?, nickname=?", user.getUsername(),user.getPassword(), user.getNickname());
}
删除对象
public void delete(int id) {
jdbcTemplate.update("delete from t_user where id=?", 1);
}
2.1、创建一个Group 类, 与User对象为一对多
package com.chb.spring_jdbc.model;
public class Group {
private int id;
private String groupName;
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
2.2、创建GroupDao
2.2.1、创建IGroupDao接口
package com.chb.spring_jdbc.dao;
import com.chb.spring_jdbc.model.Group;
public interface IGroupDao {
public void addGroup(Group group) ;
}
2.2.2、创建实现对象GroupJdbcDao
package com.chb.spring_jdbc.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.chb.spring_jdbc.dao.GroupJdbcDao;
import com.chb.spring_jdbc.dao.UserDao;
import com.chb.spring_jdbc.model.Group;
import com.chb.spring_jdbc.model.User;
public class Test {
@org.junit.Test
public void test01() {
ApplicationContext context = new ClassPathXmlApplicationContext("SpringBean.xml");
UserDao userDao = (UserDao) context.getBean("userJdbcDao");
GroupJdbcDao groupJdbcDao = (GroupJdbcDao) context.getBean("groupJdbcDao");
Group group = new Group();
group.setGroupName("CHB");
groupJdbcDao.addGroup(group);
//获取group id
System.out.println(group.getId());
//添加user
User user = new User("chb", "123456", "chbHome");
user.setGroup(group);
userDao.add(user);
}
}
结果添加成功