详解在spring中使用JdbcTemplate操作数据库的几种方式
使用JdbcTemplate的步骤
1、设置spring-jdbc和spring-tx的坐标(也就是导入依赖)
org.springframework spring-jdbc 5.2.7.RELEASE org.springframework spring-tx 5.2.7.RELEASE
2、创建数据表和实体类
- 创建数据表的过程省略
- 创建实体类Account
packagecom.jdbcTemplate.bean;
publicclassAccount{
privateStringname;
privateDoublemoney;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicDoublegetMoney(){
returnmoney;
}
publicvoidsetMoney(Doublemoney){
this.money=money;
}
@Override
publicStringtoString(){
return"Account{"+
"name='"+name+'\''+
",money="+money+
'}';
}
}
3、创建数据源、JdbcTemplate对象
4、执行数据库操作
实现3、4步的方法提供以下三种
方法一:代码中直接配置数据源和数据对象
创建JdbcTemplate对象+执行jdbc语句
//创建数据源对象
DriverManagerDataSourceds=newDriverManagerDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUrl("jdbc:mysql://localhost:3306/think");
ds.setUsername("root");
ds.setPassword("");
//创建jdbcTemplate对象
JdbcTemplatejt=newJdbcTemplate();
//执行操作(插入操作)
jt.setDataSource(ds);
jt.execute("insertintoaccount(name,money)value('EVA',50000)");
方法二:在resources目录下配置xx.xml文件,对数据源、JdbcTemplate进行注入
配置xml文件
使用配置操作数据库
编写test类测试
//二、使用配置操作数据库
//1、获取容器
ApplicationContextac=newClassPathXmlApplicationContext("beans5.xml");
//2、获取对象
JdbcTemplatejt=ac.getBean("jdbcTemplate",JdbcTemplate.class);
//、执行操作
//jt.execute("insertintoaccount(name,money)value('Alice',2000)");
//保存
//jt.update("insertintoaccount(name,money)value(?,?)","Eden",100);
//更新
//jt.update("updateaccountsetmoney=?,name=?wherename=?",1000,"Kiroto","Eden");
//删除
//jt.update("deletefromaccountwherename=?andmoney=?","Kiroto",1000);
//查找
Listlist=jt.query("select*fromaccountwherename=?",newBeanPropertyRowMapper(Account.class),"Eden");
System.out.println(list.isEmpty()?"没有查找结果":list.get(0));
方法三:使用接口实现
创建template接口和templateDAO接口实现类
接口
packagecom.jdbcTemplate.test;
importcom.jdbcTemplate.bean.Account;
publicinterfaceTemplate{
Accountfind(Stringname);
intupdate(Accountaccount);
intdelete(Accountaccount);
intadd(Accountaccount);
}
接口实现类
packagecom.jdbcTemplate.test;
importcom.jdbcTemplate.bean.Account;
importorg.springframework.jdbc.core.BeanPropertyRowMapper;
importorg.springframework.jdbc.core.JdbcTemplate;
importjava.util.List;
publicclassTemplateDAOimplementsTemplate{
privateJdbcTemplatejdbcTemplate;
publicvoidsetJdbcTemplate(JdbcTemplatejdbcTemplate){
this.jdbcTemplate=jdbcTemplate;
}
publicAccountfind(Stringname){//查找
Listlist=jdbcTemplate.query("select*fromaccountwherename=?",
newBeanPropertyRowMapper(Account.class),name);
returnlist.isEmpty()?null:list.get(0);
}
publicintupdate(Accountaccount){//更新
returnjdbcTemplate.update("updateaccountsetmoney=?wherename=?",
account.getMoney(),account.getName());
}
publicintdelete(Accountaccount){//删除
returnjdbcTemplate.update("deletefromaccountwherename=?",account.getName());
}
publicintadd(Accountaccount){//添加
returnjdbcTemplate.update("insertintoaccount(name,money)value(?,?)",account.getName(),account.getMoney());
}
}
在测试之前,因为多了一个接口实现类,除了数据源和jdbcTemplate之外,应当在xml配置文件中多配置一个TemplateDAO
编写测试类进行测试
importcom.jdbcTemplate.bean.Account;
importcom.jdbcTemplate.test.Template;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
publicclassmytest{
publicstaticvoidmain(String[]args){
ApplicationContextac=newClassPathXmlApplicationContext("beans6.xml");
Templatetp=ac.getBean("templateDAO",Template.class);//注意对比方法二的不同
Accountaccount=tp.find("Lily");
System.out.println(account.toString());
}
}
到此这篇关于详解在spring中使用JdbcTemplate操作数据库的几种方式的文章就介绍到这了,更多相关springJdbcTemplate操作数据库内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。