spring中jdbc的配置

//引入jdbc的包
<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-jdbc</artifactId>
	    <version>5.1.15.RELEASE</version>
	</dependency>
//引入mysql数据库驱动包
	<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
	<dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	    <version>8.0.19</version>
	</dependency>
//数据库链接池
	<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 -->
	<dependency>
	    <groupId>org.apache.commons</groupId>
	    <artifactId>commons-dbcp2</artifactId>
	    <version>2.7.0</version>
	</dependency>

mysql数据库链接配置

将下面的内容放入jdbc.properties文件中

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=GMT%2B8
uName=root
password=111111

useUnicode=true//使用useUnicode编码
characterEncoding=UTF-8//使用utf-8语言编码
userSSL=false//加密链接
serverTimezone=GMT%2B8//指定时区(中国是东八区)

在spring中配置mysql链接

<context:component-scan base-package="jee.pk3"></context:component-scan>
    	<!-- 引入jdbc.properties 文件,将文件中的信息加载到spring容器中-->
    	<context:property-placeholder location="jdbc.properties"/>
    	<!-- 配置dbcp数据库 -->
    		<!-- bean关闭的时候调用一个close方法,关闭数据库链接 ,close是org.apache.commons.dbcp2.BasicDataSource中的一个方法-->
    	<bean id="dataSource"
			class="org.apache.commons.dbcp2.BasicDataSource"
			destroy-method="close">
			<!--将jdbc.properties 文件中的数据作为参数赋值给org.apache.commons.dbcp2.BasicDataSource类-->
			<property name="driverClassName" value="${driverClassName}" />
			<property name="url" value="${url}" />
			<property name="username" value="${uName}" />
			<property name="password" value="${password}" />
			<!-- 连接池的初始链接数-->
			<property name="initialSize" value="3" />
		</bean>

下面是jdbc的查询方法。

package jee.pk3;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import javax.management.RuntimeErrorException;
import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Component;
@Component("userDao")
public class UserDaoImpl implements UserDao {
	//结果集对象映射器
	//将查询结果赋值给实体类的属性
	private static final class UserRowMapper implements RowMapper<User>{
		//spring对于结果集中的每一行数据,调用一次mapRow方法,获得一个对象
		//rs代表结果集中一行数据,rowNum代表第几行
		@Override
		public User mapRow(ResultSet rs, int rowNum) throws SQLException {
			User user=new User();
			user.setId(rs.getInt("UserId"));
			user.setName(rs.getString("userName"));
			user.setAge(rs.getInt("userage"));
			return user;
		}
		
	}
	//​ JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加易于使用。
	//JdbcTemplate是Spring的一部分。JdbcTemplate处理了资源的建立和释放。
	//他帮助我们避免一些常见的错误,比如忘了总要关闭连接。他运行核心的JDBC工作流,如Statement的建立和执行,而我们只需要提供SQL语句和提取结果。
	private JdbcTemplate template;
	
	@Autowired
	//将spring中的配置信息注入
	public void init(DataSource dataSource) {
		this.template=new JdbcTemplate(dataSource);
	}
	
	@Override
	public boolean insert(User user) {
		int n=template.update("insert into users(userName,userage)values(?,?) ",user.getName(),user.getAge());
		return false;
	}

	@Override
	public boolean delete(int id) {
		int n=template.update("delete from users where UserId=?",id);
		return n==1;
	}

	@Override
	public boolean update(User user) {
		int n=template.update("update users set userName=?, userage=? where UserId=?",user.getName(),user.getAge(),user.getId());
		return n==1;
	}

	@Override
	public User get(int id) {
		//查询单行数据
		return template.queryForObject("select * from users where UserId =?", new UserRowMapper(),id);
		
	}

	//查询单行数据
	@Override
	public Map<String, Object> queryForMap(int id) {
		//查询单行数据,用列明作为key,用列值作为value放入map中
		return template.queryForMap("select * from users where UserId =?",id);
		
	}

	@Override
	public int getCount() {
		//
		return template.queryForObject("select count(*) from users",Integer.class);
	}

	@Override
	public List<User> select() {
		return template.query("select * from users", new UserRowMapper());
	}

	@Override
	public List<Map<String, Object>> queryForList() {
		return template.queryForList("select * from users");
	}

	
}

你可能感兴趣的:(ssm框架学习)