JavaWeb_(Spring框架)Spring与JDBC
一、用Spring中的JdbcTemplate操作数据库
在MySQL中准备一个user表,表中增加一条假数据
用Spring中的JdbcTemplate操作数据库,在JdbcTemplate中实现增删改查操作
//增
void saveUser(User u); //删
void deleteUserById(Integer id); //改
void updateUser(User u); //查
//根据id查找用户
User selectUserById(Integer id); //查找全部用户List
List<User> selectAllUser(); //查找用户数量
Integer selectUserCount();
package com.Gary.bean; public class User { private Integer u_id;
private String u_username;
private String u_password; public Integer getU_id() {
return u_id;
}
public void setU_id(Integer u_id) {
this.u_id = u_id;
}
public String getU_username() {
return u_username;
}
public void setU_username(String u_username) {
this.u_username = u_username;
}
public String getU_password() {
return u_password;
}
public void setU_password(String u_password) {
this.u_password = u_password;
}
@Override
public String toString() {
return "User [u_id=" + u_id + ", u_username=" + u_username + ", u_password=" + u_password + "]";
} }
User.java
package com.Gary.dao; import java.util.List; import com.Gary.bean.User; public interface UserDao { //增
void saveUser(User u); //删
void deleteUserById(Integer id); //改
void updateUser(User u); //查
//根据id查找用户
User selectUserById(Integer id); //查找全部用户List
List<User> selectAllUser(); //查找用户数量
Integer selectUserCount(); }
UserDao.java
package com.Gary.dao; import java.beans.PropertyVetoException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List; import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper; import com.Gary.bean.User;
import com.mchange.v2.c3p0.ComboPooledDataSource; public class UserDaoImpl implements UserDao { JdbcTemplate jt = new JdbcTemplate(dataSource); private static ComboPooledDataSource dataSource; static {
//配置c3p0
try {
//使用c3p0链接数据库
dataSource = new ComboPooledDataSource();
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/ssm_spring");
dataSource.setUser("root");
dataSource.setPassword("123456");
} catch (PropertyVetoException e) { e.printStackTrace();
}
} //保存用户
@Override
public void saveUser(User u) {
String sql = "insert into user values(null,?,?)";
jt.update(sql,u.getU_username(),u.getU_password()); } //根据id删除用户
@Override
public void deleteUserById(Integer id) {
String sql = "delete from user where u_id = ?";
jt.update(sql,id);
} //更新用户
@Override
public void updateUser(User u) {
String sql= "update user set u_username =? , u_password = ?where u_id =?";
jt.update(sql,u.getU_username(),u.getU_password(),u.getU_id());
} //根据id查询一个用户
@Override
public User selectUserById(Integer id) {
String sql = "select * from user where u_id = ?";
User user = jt.queryForObject(sql, new RowMapper<User>() { @Override
public User mapRow(ResultSet rs, int index) throws SQLException {
User u = new User();
u.setU_id(rs.getInt("u_id"));
u.setU_username(rs.getString("u_username"));
u.setU_password(rs.getString("u_password")); return u;
} },id); return user;
} //查询用户列表
@Override
public List<User> selectAllUser() {
String sql= "select * from user";
List<User> list = jt.query(sql, new RowMapper<User>() { @Override
public User mapRow(ResultSet rs, int index) throws SQLException {
User u = new User();
u.setU_id(rs.getInt("u_id"));
u.setU_username(rs.getString("u_username"));
u.setU_password(rs.getString("u_password")); return u;
} }); return list;
} @Override
public Integer selectUserCount() {
String sql = "select count(*) from user";
return jt.queryForObject(sql, Integer.class); } }
UserDaoImpl.java
根据id查找用户
package com.Gary.test; import org.junit.Test; import com.Gary.bean.User;
import com.Gary.dao.UserDao;
import com.Gary.dao.UserDaoImpl; public class JdbcTest { @Test
public void Test1() {
UserDao dao = new UserDaoImpl();
//根据id查询用户
User u = dao.selectUserById(1);
System.out.println(u); } }
JdbcTest.java
保存用户
package com.Gary.test; import org.junit.Test; import com.Gary.bean.User;
import com.Gary.dao.UserDao;
import com.Gary.dao.UserDaoImpl; public class JdbcTest2 { @Test
public void Test2() {
UserDao dao = new UserDaoImpl();
//添加一个新的数据
User u = new User();
u.setU_username("newGary");
u.setU_password("123123");
dao.saveUser(u); } }
JdbcTest2.java
二、使用Spring容器来管理JdbcTemplate
package com.Gary.test; import javax.annotation.Resource; import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.Gary.bean.User;
import com.Gary.dao.UserDao; @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class JdbcTest3 { @Resource(name = "userDao")
private UserDao ud; @Test
public void Test3() {
//添加一个新的数据
User u = new User();
u.setU_username("666sGary");
u.setU_password("666");
ud.saveUser(u); } }
JdbcTest3.java
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd"> <!-- 依赖关系 dao -> jdbcTemplate -> dataSource --> <!-- 配置 dataSource -->
<bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/ssm_spring"/>
<property name="user" value="root"/>
<property name="password" value="123456"/>
</bean> <!-- jdbcTemplate -->
<bean name="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean> <!-- dao -->
<bean name="userDao" class="com.Gary.dao.UserDaoImpl">
<property name="jt" ref="jdbcTemplate"/>
</bean> </beans>
applicationContext.xml
JavaWeb_(Spring框架)Spring与JDBC的更多相关文章
- 跟着刚哥学习Spring框架--Spring容器(二)
Spring容器 启动Spring容器(实例化容器) -- IOC容器读取Bean配置创建Bean实例之前,必须对它进行实例化(加载启动),这样才可以从容器中获取Bean的实例并使用. Bean是S ...
- Spring框架 - Spring和Spring框架组成
Spring框架 - Spring和Spring框架组成 Spring是什么?它是怎么诞生的?有哪些主要的组件和核心功能呢? 本文通过这几个问题帮助你构筑Spring和Spring Framework ...
- [Spring框架]Spring AOP基础入门总结二:Spring基于AspectJ的AOP的开发.
前言: 在上一篇中: [Spring框架]Spring AOP基础入门总结一. 中 我们已经知道了一个Spring AOP程序是如何开发的, 在这里呢我们将基于AspectJ来进行AOP 的总结和学习 ...
- JavaWeb_(Spring框架)Spring整合Hibernate
Dao层类要继承HibernateDaoSupport.java父类 原先使用Hibernate框架hibernate.cfg.xml配置数据库 <hibernate-configuration ...
- Spring 框架系列之 JDBC 整合实例
微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.Spring框架整合 DAO 模板 JDBC:org.springframework.jdb ...
- Spring框架之演示JDBC的模板类
1. 步骤一:创建数据库的表结构 create database spring_day03; use spring_day03; create table t_account( id int prim ...
- JavaWeb_(Spring框架)Spring中IoC与DI概念入门
Spring是于2003 年兴起的一个轻量级的Java 开源框架,它由Rod Johnson创建.传统J2EE应用的开发效率低,Spring作为开源的中间件,提供J2EE应用的各层的解决方案,Spri ...
- [Spring框架]Spring开发实例: XML+注解.
前言: 本文为自己学习Spring记录所用, 文章内容包括Spring的概述已经简单开发, 主要涉及IOC相关知识, 希望能够对新入门Spring的同学有帮助, 也希望大家一起讨论相关的知识. 一. ...
- Spring框架---Spring入门
Spring入门 为了能更好的理解先讲一些有的没的的东西: 什么是Spring Spring是分层的JavaSE/EE full-stack(一站式) 轻量级开源框架 分层 SUN提供的EE的三层结构 ...
- [Spring框架]Spring AOP基础入门总结一.
前言:前面已经有两篇文章讲了Spring IOC/DI 以及 使用xml和注解两种方法开发的案例, 下面就来梳理一下Spring的另一核心AOP. 一, 什么是AOP 在软件业,AOP为Aspect ...
随机推荐
- (一)ORM基础
一.ORM思想解析 要了解学习Hibernate框架,就不得不提到ORM思想,因为Hibernate就是基于ORM思想的一个产品. 1.1 介绍 广义上,ORM指的是面向对象的对象模型和关系型数据库的 ...
- WIN10升级失败,故障代码 0X8007042B-0X4000D 解决
个人博客链接:WIN10升级失败,故障代码 0X8007042B-0X4000D 解决
- node - path路径
1.node命令路径与js文件路径 node命令路径为node命令所执行的目录,js文件路径指的是你要运行的js所在的目录. 如上图所示: server.js路径为E:\zyp: node命令路径我们 ...
- c#界面卡死处理方法
方法一: 设置属性: Control.CheckForIllegalCrossThreadCalls = false; 开启一个新线程 Thread th = new Thread(() => ...
- c# 选择结构
- jdk在window系统中的配置
其实配置很简单,百度上很多配置的复杂化了,今天办公室的某小白百度了半天也没有配置好. 我使用的是Linux ,就很多简单了很多编译器都是集成的,尤其是现在kali linux 系统觉得做得越来也好 ...
- Linux命令——diff、patch
简介 diff以行为单位比较不同ASCII文件差异,可以输出一组指令,用于指导如何更改一个文件使其与第二个文件相同.diff在软件开发时多用于比较新旧版本代码,和patch连用可以将文件间区别做成补丁 ...
- 【问题】This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
转载请注明出处:https://www.cnblogs.com/kelamoyujuzhen/p/9087725.html 这类问题归根到底就是软件源问题,Linux下安装软件不像windows.L ...
- CentOS 8 (1905)系统安装
本章内容: CentOS 8 的安装(CentOS-8-1905) 一.安装光盘,选择Install CentOS Linux 8.0.1905 二.选择系统语言,我这里选的是英文,也可以选择中文,往 ...
- BM(Berlekamp-Massey)算法
线性递推的题目区域赛里还是挺多的,还是有必要学一下 ~ BM(Berlekamp-Massey)算法 ~ 有一个$n$阶线性递推$f$,想要计算$f(m)$,有一种常用的办法是矩阵快速幂,复杂度是$O ...