首页 资讯频道 互联频道 智能频道 网络 数据频道 安全频道 服务器频道 存储频道

浅谈Spring的数据库编程

2020-03-09 10:27:17 来源 : 泰斗贤若如公众号

前言

先入门,把核心理解后再回过头来看这些我觉得效果更好,不知道说的对不对,要是理解不当,还望指教。此篇为Spring的数据库编程,主要讲jdbcTemplate,让初学者直接上手。

数据库切入

数据库编程是互联网编程的基础,Spring框架为开发者提供了JDBC模板模式,即jdbcTemplate,它可以简化许多代码,需要提醒的是jdbcTemplate在实际应用中并不常用,但我觉得对新手来说苍蝇再小也是肉,要想往前走,就得把这些小肉先吃了。

Spring JDBC配置

使用Spring JDBC操作数据库,需要对其进行配置,配置如下

 

 

 

 

 

 

 

 

 

配置JDBC模板时需要将dataSource注入到jdbcTemplate,而在数据访问层(Dao类)需要使用jdbcTemplate时也需要将jdbc Template注入到对应的Bean中,我在这演示用最简单的注解注入

@Repository("userDao")

publicclassUserDaoImplimplementsUserDao{

@Autowired

//使用配置文件中的JDBC模板

privateJdbcTemplatejdbcTemplate;

}

Spring Jdbc Template的常用方法

在上面我们获取了JDBC模板,下面我来说如何使用它。首先需要了解JdbcTemplate常用的方法,该类的常用方法是update和query.

1、public int update(String sql,Object args[])

该方法可以对数据表进行增加、修改、删除等操作。使用args[]设置SQL语句中的参数,并返回更新的行数。

示例如下:

publicvoidadd(){

StringinsertSql="insertintouservalues(null,?,?)";

Objectparem1[]={"成功","123456"};

jdbcTemplate.update(insertSql,parem1);

System.out.println("UserDao中的添加功能实现了");

}

2、public Listquery(String sql,RowMapperrowMapper,Object args[])

该方法可以对数据表进行查询操作,rowMapper将结果集映射到用户自定义的类中(前提是自定义类中的属性要与数据表的字段对应)。

示例如下:

publicvoidquery(){

StringselectSql="select*fromuser";

RowMapperrowMapper=newBeanPropertyRowMapper(User.class);

Listlist=jdbcTemplate.query(selectSql,rowMapper,null);

System.out.println("UserDao中的查询功能实现了");

}

案例辅助

Pom.xml

junit

junit

4.11

test

 

javax.servlet

javax.servlet-api

3.1.0

 

javax.servlet

jstl

1.2

 

mysql

mysql-connector-java

5.1.38

 

org.springframework

spring-core

5.1.5.RELEASE

 

org.springframework

spring-beans

5.1.5.RELEASE

 

org.springframework

spring-context

5.1.5.RELEASE

 

org.springframework

spring-aop

5.1.5.RELEASE

 

org.springframework

spring-jdbc

5.1.5.RELEASE

 

org.springframework

spring-web

5.1.5.RELEASE

 

org.springframework

spring-webmvc

5.1.5.RELEASE

 

org.springframework

spring-expression

5.1.5.RELEASE

 

org.springframework

spring-tx

5.1.5.RELEASE

 

commons-logging

commons-logging

1.2

 

 

spring-config.xml

 

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:tx="http://www.springframework.org/schema/tx"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc.xsd

">

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

User

packagecom.my.pojo;

publicclassUser{

privateintid;

privateStringusername;

privateStringpassword;

publicUser(){

}

publicUser(intid,Stringusername,Stringpassword){

this.id=id;

this.username=username;

this.password=password;

}

publicintgetId(){

returnid;

}

publicvoidsetId(intid){

this.id=id;

}

publicStringgetUsername(){

returnusername;

}

publicvoidsetUsername(Stringusername){

this.username=username;

}

publicStringgetPassword(){

returnpassword;

}

publicvoidsetPassword(Stringpassword){

this.password=password;

}

@Override

publicStringtoString(){

return"User{"+

"id="+id+

",username='"+username+'''+

",password='"+password+'''+

'}';

}

}

UserDao

packagecom.my.dao;

publicinterfaceUserDao{

publicvoidadd();

publicvoiddelete();

publicvoidupdate();

publicvoidquery();

}

UserDaoImpl

@Override

publicvoidupdate(){

StringupdateSql="updateusersetusername=?,password=?whereid=?";

Objectparem3[]={"修改","654321",3};

jdbcTemplate.update(updateSql,parem3);

System.out.println("UserDao中的修改功能实现了");

}

@Override

publicvoidquery(){

StringselectSql="select*fromuser";

RowMapperrowMapper=newBeanPropertyRowMapper(User.class);

Listlist=jdbcTemplate.query(selectSql,rowMapper,null);

System.out.println("UserDao中的查询功能实现了");

for(Useruser:list){

System.out.println(user);

}

}

}

测试Test3

packagecom.my.test;

importcom.my.dao.UserDao;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.context.ApplicationContext;

importorg.springframework.context.support.ClassPathXmlApplicationContext;

publicclassTest3{

@Autowired

privateUserDaouserDao;

publicstaticvoidmain(String[]args){

ApplicationContextappCon=newClassPathXmlApplicationContext("spring-config.xml");

//从容器中获取目标对象

UserDaouserDao=(UserDao)appCon.getBean("userDao");

//userDao.add();

userDao.delete();

userDao.update();

userDao.query();

}

}

测试结果

结束

对于Spring JbdcTemplate的讲解到此结束,对于新手来说没必要太复杂,能完成增删改查做个入门即可,等了解了再详细学习才有帮助,希望能对一些需要的朋友有用吧

相关文章

最近更新