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

下载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. HTML5 Audio(音频)

        <audio controls> <source src="horse.ogg" type="audio/ogg"> <s ...

  2. Python高级变量类型

    1.列表基础操作 2.列表循环遍历 3.元组 4.字典基础操作 5.字典循环遍历 6.字符串基础操作 7.字符串切片 8.公共方法

  3. mysql 下的update select from的两种方式比较

    工作中遇到需要将一个表中的数据按照对应规则填入别的表中的情况 例如 表1 a a1    a2 11     90889 32     31241 12     52123 表2 b b1     b ...

  4. Python对wav文件的重采样

    例如从2channel,4.41k hz 重采样到 1 channel,16k hz def downsampleWav(src, dst, inrate=44100, outrate=16000, ...

  5. The usage of docker image wurstmeister/kafka

    The docker image wurstmeister/kafka is the most stared image for kafka in hub.docker.com, but the us ...

  6. Memcache,redis,rabbitMQ,SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  7. python 常用技巧

    一.字符串与数值的转换 Python中字符串转换为数值: str_num = '99' num = int(str_num) 整型数转换为字符串: num = 99 str_num = str(num ...

  8. 羊车门问题(Python)

    羊车门问题(结对作业) 在完成本题之前,请仔细阅读下面内容: 题目描述:有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么.参赛者可以选择一扇门,在开启它之前,主持人会 ...

  9. java使用jxl,poi解析excel文件

    public interface JavaExcel { /** * 使用jxl写excel文件 */ public void writeJxlExcel(); /** * 使用jxl读excel文件 ...

  10. Unable to compile class for JSP 的可能原因

    浏览器访问web jsp文件,导致500-Unable to compile class for JSP 的原因. 原因一:查看网上的方法,说很可能的原因是tomcat版本比JDK的版本要低导致的.所 ...