新建一个工程,添加对数据库的支持

下载mysql驱动包 mysql-connector-java-5.1.7-bin.jar,快捷键ctrl+alt+shift+s,添加jar包到工程

编写JdbcTemplateDemo.java

 package com.jdbc;

 import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.datasource.DriverManagerDataSource; import java.sql.*;
import java.util.List; public class JdbcTemplateDemo {
//1 增加操作
@Test
public void add() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
dataSource.setUsername("root"); //用户名
dataSource.setPassword("xxxxxx"); //密码 //创建jdbcTemplate对象,设置数据库
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); //sql语句
String sql = "INSERT INTO User VALUES(?,?)"; //调用jdbcTemplate对象里面的update方法实现插入操作
int rows = jdbcTemplate.update(sql, "Lucy", "250");
System.out.println(rows);
} //2 删除操作
@Test
public void delete() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
dataSource.setUsername("root"); //用户名
dataSource.setPassword("xxxxxx"); //密码 //创建jdbcTemplate对象,设置数据库
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); //sql语句
String sql = "DELETE FROM user WHERE username=?"; //调用jdbcTemplate对象里面的update方法实现删除操作
int rows = jdbcTemplate.update(sql, "Lucy");
System.out.println(rows);
} //3 修改操作
@Test
public void update() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
dataSource.setUsername("root"); //用户名
dataSource.setPassword("xxxxxx"); //密码 //创建jdbcTemplate对象,设置数据库
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); //sql语句
String sql = "UPDATE user SET password=? WHERE username=?";
//调用jdbcTemplate对象里面的update方法实现操作修改方法
int rows = jdbcTemplate.update(sql, "111111", "Lucy");
System.out.println(rows);
} //4 查询操作
//4.1查询有多少记录
@Test
public void findCount() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
dataSource.setUsername("root"); //用户名
dataSource.setPassword("xxxxxx"); //密码 //创建jdbcTemplate对象,设置数据库
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); //sql语句
String sql = "SELECT count(*) FROM user";
//调用jdbcTemplate对象里面的queryForObject 方法得到记录数
//queryForObject 查询返回某一个值,第一个参数,第二个参数返回类型
int count = jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println("一共查询到" + count + "条记录");
} //4.2查询返回对象,jdbc原始操作
@Test
public void findObject() {
//创建连接对象
Connection conn = null;
//创建预编译对象
PreparedStatement psmt = null;
//创建结果集对象
ResultSet rs = null; //加载驱动
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql:///test", "root", "xxxxxx");
//编写sql语句,查询表中所有记录
String sql = "SELECT * FROM user WHERE username=?";
//预编译sql
psmt = conn.prepareStatement(sql);
//设置参数值
psmt.setString(1, "Lucy");
//执行sql
rs = psmt.executeQuery();
//遍历结果集
while (rs.next()) {
//得到返回结果
String username = rs.getString("username");
String password = rs.getString("password");
//放到User对象里面
User user = new User();
user.setUsername(username);
user.setPassword(password);
//输出查询结果
System.out.println(user);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
//关闭数据库
rs.close();
psmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} //4.3查询返回对象
@Test
public void findObject1() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
dataSource.setUsername("root"); //用户名
dataSource.setPassword("xxxxxx"); //密码 //创建jdbcTemplate对象,设置数据库
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); //sql语句 根据username查询
String sql = "SELECT * FROM user WHERE username=?"; //查询返回对象,第一个参数sql语句,第二个参数是RowMapper接口,需要自己写类做数据封装,第三个参数是可变参数
User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(), "Tom");
System.out.println(user);
} //4.4查询返回对象List
@Test
public void findList() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
dataSource.setUsername("root"); //用户名
dataSource.setPassword("xxxxxx"); //密码 //创建jdbcTemplate对象,设置数据库
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); //sql语句 查询所有记录
String sql = "SELECT * FROM user"; //query第一个参数sql语句,第二个参数是RowMapper接口,需要自己写类做数据封装,第三个参数是可变参数可省略
List<User> list = jdbcTemplate.query(sql, new MyRowMapper());
System.out.println(list);
}
}
//自己写数据实现类
class MyRowMapper implements RowMapper<User> {
public User mapRow(ResultSet rs,int num) throws SQLException{
//1 从结果集里得到数据
String username = rs.getString("username");
String password = rs.getString("password");
//2 把得到的数据放到对象里面
User user = new User();
user.setUsername(username);
user.setPassword(password);
return user;
}
}

编写User类User.java

 package com.jdbc;

 public class User {
private String username;
private String password; public void setUsername(String username){ this.username = username; }
public void setPassword(String password){ this.password = password; }
public String getUsername(){ return username; }
public String getPassword(){ return password; } @Override
public String toString(){ return "User [username="+username+",password="+password+"]"; }
}

执行增加数据add(),数据库中添加一个记录。

执行修改数据update(),修改表中的记录。

手动增加几条记录

执行查询有多少记录findCount(),控制台输出

一共查询到4条记录

执行查询返回对象findObject(),输出

User [username=Lucy,password=111111]

执行查询返回对象findObject1(),输出

User [username=Tom,password=aaabbbccc]

执行查询返回对象List findList(),输出

[User [username=Lucy,password=111111], User [username=Tom,password=aaabbbccc], User [username=Jacky,password=123456], User [username=Lily,password=abccba]]

执行删除操作 delete(),username为Lucy的记录删除掉了

Java框架spring 学习笔记(十五):操作MySQL数据库的更多相关文章

  1. Java框架spring 学习笔记(五):Bean定义继承

    子 bean 的定义继承父定义的配置数据.子定义可以根据需要重写一些值,或者添加其他值. 编写HelloWorld.java package com.example.spring; public cl ...

  2. Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)

    在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...

  3. Java框架spring 学习笔记(十四):注解aop操作

    回见Java框架spring Boot学习笔记(十三):aop实例操作,这里介绍注解aop操作 首先编写一个切入点HelloWorld.java package com.example.spring; ...

  4. Java框架spring 学习笔记(十二):aop实例操作

    使用aop需要在网上下载两个jar包: aopalliance.jar aspectjweaver.jar 为idea添加jar包,快捷键ctrl+shift+alt+s,打开添加jar包的对话框,将 ...

  5. MYSQL进阶学习笔记十五:MySQL 的账号权限赋予!(视频序号:进阶_33,34)

    知识点十六:MySQL的账号权限赋予(33) 一.MySQL权限简介 关于mysql的权限简单的理解就是mysql允许你做你全力以内的事情,不可以越界.比如只允许你执行select操作,那么你就不能执 ...

  6. Java框架spring 学习笔记(十):bean管理(注解和配置文件混合使用)

    配置文件和注解混合使用 创建对象操作使用配置文件方式实现 注入属性的操作使用注解方式实现 编写BookDao.java和OrderDao.java文件 BookDao.java package com ...

  7. Java框架spring学习笔记(十七):事务操作

    事务操作创建service和dao类,完成注入关系 service层叫业务逻辑层 dao层单纯对数据库操作层,在dao层不添加业务 假设现在有一个转账的需求,狗蛋有10000元,建国有20000元,狗 ...

  8. Java框架spring 学习笔记(十六):c3p0连接池的配置以及dao使用jdbcTemplate

    连接池可以大大提高数据库的性能和连接速度,将那些已连接的数据库连接存放在一个连接池里,以后别人要连接数据库的时候,将不会重新建立数据库连接,直接从连接池中取出可用的连接,用户使用完毕后,会释放连接重新 ...

  9. Java框架spring 学习笔记(十九):事务管理(注解管理)

    注解管理的方式要比xml配置方式要简单很多 只需在配置文件中添加事务注解 <?xml version="1.0" encoding="UTF-8"?> ...

随机推荐

  1. javase高级

    静态代理:需要代理对象和目标对象实现一样的接口.同一个接口,一个目标类实现,一个代理类实现,代理类除了目标类的方法还有别的增强方法优点:可以在不修改目标对象的前提下扩展目标对象的功能.缺点:1冗余.由 ...

  2. MYSQL-联合索引

    深入理解 index merge 是使用索引进行优化的重要基础之一.理解了 index merge 技术,我们才知道应该如何在表上建立索引. 1. 为什么会有index merge 我们的 where ...

  3. python之路——21

    复习 1.序列化:数据类型转换成字符串的过程 为了方便存储和网络传输2.序列化模块: 1.json 1.dumps 2.loads 3.dump 和文件相关 4.load 不能load多次 2.pic ...

  4. 通过google cloud API 使用 WaveNet

    Cloud Text-to-Speech 中使用了WaveNet,用于TTS,页面上有Demo.目前是BETA版 使用方法 注册及认证参考:Quickstart: Text-to-Speech 安装g ...

  5. css选择器区别

    空格选择器 ul li 选择ul 下面的所有li 元素 大于号选择器  ul>li 选择ul 下面的直接子元素 只能是儿子辈的 不能是孙子辈的

  6. TopSnackbar,在顶部滑出显示的Snackbar;

    TopSnackbar 既然你能找到这篇文章,说明你一定使用过或了解Snackbar,所以我就不介绍Snackbar了.嗯~有图有真相! 嗯,就是图上这样: 我把Snackbar的源码拉了过来,重写了 ...

  7. ubuntu安装python版本的opencv

    安装命令: pip install opencv-python

  8. mac与Windows系统支持软件汇总

    踩过的坑,记录下

  9. 二、Python-运算符、控制及循环语句

    一.运算符 算数运算符 +:加 -:减 *:乘 /:除 ~:取反 %:求余数(只返回余数) //:取整数(只返回整数部分) **:幂,返回x的y次方 赋值运算符:= 比较运算符:<小于.< ...

  10. ganglia之web界面介绍

    转自:https://blog.csdn.net/lswnew/article/details/79175555 http://www.51niux.com/?id=83 第一篇文章讲述了gangli ...