(六) JdbcTemplate 操作数据库
实现思路:
- 导入包 4 + 1 + 3
mysql-connector-java-5.1.40-bin.jar
,spring-jdbc-4.3.6.RELEASE.jar
,spring-tx-4.3.6.RELEASE.jar
- 创建数据库
- 创建模型User类,属性与数据库字段对应
- 创建
UserDao
完成数据库的增删改查 - 测试效果
1. 导入所需要的jar包
- spring 核心包 4 + 1
- 3个JdbcTemplate需要的jar包
mysql-connector-java-5.1.40-bin.jar
// 数据库访问驱动
spring-jdbc-4.3.6.RELEASE.jar
// JdbcTemplate所在的包
spring-tx-4.3.6.RELEASE.jar
// 事务的包
2. 创建数据库
3. 创建模型User类,属性与数据库字段对应
package com.dacangshu.pojo;
/**
* @author dacangshu
* @date 2021/5/11 16:36
*/
public class User {
private int aid;
private String aname;
private String kungfu;
private int defensivepower;
private int damagepower;
private Integer top;
public int getAid() {
return aid;
}
public void setAid(int aid) {
this.aid = aid;
}
public String getAname() {
return aname;
}
public void setAname(String aname) {
this.aname = aname;
}
public String getKungfu() {
return kungfu;
}
public void setKungfu(String kungfu) {
this.kungfu = kungfu;
}
public int getDefensivepower() {
return defensivepower;
}
public void setDefensivepower(int defensivepower) {
this.defensivepower = defensivepower;
}
public int getDamagepower() {
return damagepower;
}
public void setDamagepower(int damagepower) {
this.damagepower = damagepower;
}
public int getTop() {
return top;
}
public void setTop(Integer top) {
this.top = top == null ? Integer.valueOf(0) : top;
}
@Override
public String toString() {
return "User{" +
"aid=" + aid +
", aname='" + aname + '\'' +
", kungfu='" + kungfu + '\'' +
", defensivepower=" + defensivepower +
", damagepower=" + damagepower +
", top=" + top +
'}';
}
}
基本上都是get和set方法,还有toString方法
4. 创建UserDao
完成数据库的增删改查
这里只写了queryUser
查询方法
使用 BeanPropertyRowMapper
会帮我们通过反射绑定上属性值
package com.dacangshu.dao;
import com.dacangshu.pojo.User;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* @author dacangshu
* @date 2021/5/11 16:33
*/
public class UserDao {
private JdbcTemplate jdbcTemplate;
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public void queryUser() {
User user = jdbcTemplate.queryForObject("select * from martialarts where aid = 1", new BeanPropertyRowMapper<>(User.class));
System.out.println(user);
}
}
这里的CURL(增删改查)方法可以参考另一个帖子:
5. 测试效果
package com.dacangshu;
import com.dacangshu.dao.UserDao;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @author dacangshu
* @date 2021/5/11 16:41
*/
public class BootStrap {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = context.getBean("userDao", UserDao.class);
userDao.queryUser();
}
}
输出
信息: Loading XML bean definitions from class path resource [applicationContext.xml]
5月 11, 2021 4:55:07 下午 org.springframework.jdbc.datasource.DriverManagerDataSource setDriverClassName
信息: Loaded JDBC driver: com.mysql.jdbc.Driver
User{aid=1, aname='扫地僧', kungfu='少林功夫', defensivepower=100, damagepower=100, top=0}