spring作为一站式框架, 提供了控制层的 SpringMVC 和 持久层的 Spring JdbcTemplate
1.导入相关的jar包(pom.xml):mysql
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version></dependency>
2.导入JdbcTemplate的jar包和阿里的数据库连接池管理对象:
<!-- spring-jdbc --><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.2.RELEASE</version></dependency>
<!-- 阿里数据源 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency>
将不同模块的配置放到不同的XML文件中,创建db.xml文件存放JDBC的相关配置
管理数据源对象:
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${dirvername}"></property><property name="url" value="${url}"></property><property name="username" value="${uname}"></property><property name="password" value="${psw}"></property><property name="initialSize" value="10"></property><property name="minIdle" value="5"></property><property name="maxActive" value="20"></property></bean>
将连接数据库的相关属性文件以键值对的形式存放在config.properties中,再将文件导入XML中:<context:property-placeholder location="config.properties"/>
dirvername=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/ssm_db?serverTimezone=Asia/Shanghai
uname=root
psw=123456
配置文件中创建 JdbcTemplate
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource" ref="dataSource"></property></bean>
最后将db.xml导入主配置文件(spring.xml)中:
<import resource="classpath:db.xml"></import>
3.注入JdbcTemplate类,执行sql语句:
- DDL创建和修改数据库表结构:使用jdbcTemplate.execute();
- DML(数据操纵)新增、修改和删除:jdbcTemplate.update();
- DQL数据查询:jdbcTemplate.query(),查询时,需要我们自己定义返回对象。
示例:
@Repository
public class UserDao {@AutowiredJdbcTemplate jdbcTemplate;public void insertUser(User user){jdbcTemplate.update("insert into admin(account,password) value (?,?)","老刘","6666");List<User> lists=jdbcTemplate.query("select * from admin where id>?", new RowMapper<User>() {@Overridepublic User mapRow(ResultSet resultSet, int i) throws SQLException {User user1 = new User();user1.setId(resultSet.getInt("id"));user1.setName(resultSet.getString("account"));return user1;}},1);System.out.println("保存成功");System.out.println(lists.size());}
}