每次都是注册驱动,获取连接,然后执行。每次都写很累,肯定能抽取出来一些东西。Java里面是这样的,相同的东西可以抽取做成一个方法。用的时候调这方法就OK了。这方法抽取到什么程度呢?

package cn.itcast.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; import org.junit.Test; import cn.itcast.utils.JdbcUtils; //jdbc的crud操作
public class JdbcDemo6 { @Test
public void findByIdTest(){
//1.定义sql
String sql = "select * from user where id= 1";
Connection con = null;
Statement st = null;
ResultSet rs = null; try { //1.注册驱动 Class.forName("com.mysql.jdbc.Driver"); //2.获取连接
try {
con = DriverManager.getConnection("jdbc:mysql:///day17", "root", ""); //3.获取操作sql语句对象Statement
st = con.createStatement(); //4.执行sql
rs = st.executeQuery(sql); //5.遍历结果集
while(rs.next()){
int id = rs.getInt("id");
//String id = rs.getString("id");//虽然用getString()行,但是用getInt()比较合适
String username = rs.getString("username");
String password = rs.getString("password");
String email = rs.getString("email");
System.out.println(id+" "+username+" "+password+" "+email);
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//6.释放资源
try {
if(rs !=null ){
rs.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(st!=null){
st.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(con!=null){
con.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//添加操作
@Test
public void addTest(){
//定义sql
String sql = "insert into user values(null,'张三','123','zs@163.com')";
Connection con = null;
Statement st = null;
ResultSet rs = null; try { //1.注册驱动 Class.forName("com.mysql.jdbc.Driver"); //2.获取连接
try {
con = DriverManager.getConnection("jdbc:mysql:///day17", "root", ""); //3.获取操作sql语句对象Statement
st = con.createStatement(); //4.执行sql
int row = st.executeUpdate(sql);
System.out.println(row);
if(row!=0){
System.out.println("添加成功");
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//6.释放资源
try {
if(rs !=null ){
rs.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(st!=null){
st.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(con!=null){
con.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} //update操作
@Test
public void updateTest(){
//将id=3的人的password修改为456
String password = "456";
String sql = "update user set password='"+password+"' where id=3"; //1.得到Connection
Connection con = null;
Statement st = null;
try {
con = JdbcUtils.getConnectin(); //3.获取操作sql语句对象Statement
st = con.createStatement(); //4.执行sql
int row = st.executeUpdate(sql);
System.out.println(row);
if(row!=0){
System.out.println("添加成功");
} } catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//关闭资源
try {
if(st!=null){
st.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(con!=null){
con.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
}
package cn.itcast.utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; public class JdbcUtils { public static Connection getConnectin() throws ClassNotFoundException, SQLException{ Class.forName("com.mysql.jdbc.Driver");//在开发中用哪个Statement人家有选择的权利,你不能给它抽取 //2.获取连接
Connection con = DriverManager.getConnection("jdbc:mysql:///day17", "root", "");
return con;
}
}

day17 10.jdbc的crud操作的更多相关文章

  1. 【JDBC】CRUD操作

    JDBC的CRUD操作 向数据库中保存记录 修改数据库中的记录 删除数据库中的记录 查询数据库中的记录 保存代码的实现 package demo1; import java.sql.Connectio ...

  2. jdbc mysql crud dao模型 sql注入漏洞 jdbc 操作大文件

    day17总结 今日内容 l JDBC 1.1 上次课内容总结 SQL语句: 1.外键约束:foreign key * 维护多个表关系! * 用来保证数据完整性! 2.三种关系: * 一对多: * 一 ...

  3. 【JDBC核心】实现 CRUD 操作

    实现 CRUD 操作 操作和访问数据库 数据库连接被用于向数据库服务器发送命令和 SQL 语句,并接受数据库服务器返回的结果.其实一个数据库连接就是一个 Socket 连接. java.sql 包中有 ...

  4. 10月16日下午MySQL数据库CRUD操作(增加、删除、修改、查询)

    1.MySQL注释语法--,# 2.2.后缀是.sql的文件是数据库查询文件. 3.保存查询. 关闭查询时会弹出提示是否保存,保存的是这段文字,不是表格(只要是执行成功了表格已经建立了).保存以后下次 ...

  5. 10天学会phpWeChat——第九天:数据库增、删、改、查(CRUD)操作

    数据库的操作(CRUD)是一个现代化计算机软件的核心,尤其针对web应用软件.虽然在前面的几讲里,我们针对数据库操作大致有了一些了解,但今天我们需要再次强化下. 除了新瓶装老酒,我们今天还引入一个新的 ...

  6. JDBC(1)-数据库连接和CRUD操作

    关于jdbc的全部jar包 链接:https://pan.baidu.com/s/1peofgu89SpepTTYuZuphNw 提取码:vd5v 一.获取数据库连接 1. Driver接口介绍 ja ...

  7. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...

  8. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    一.使用MyBatis对表执行CRUD操作--基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0&q ...

  9. MyBatis学习总结_02_使用MyBatis对表执行CRUD操作

    一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0&q ...

随机推荐

  1. c# 打开第三方软件(如:电脑自带看图软件)

    嘿嘿,直接上示例代码 /// <summary> /// 利用第三方软件浏览加工图纸 /// </summary> /// <param name="fileP ...

  2. python sort() sorted() 与argsort()函数的区别

    1.python的内建排序函数有 sort.sorted两个 sort函数只定义在list中,sorted函数对于所有的可迭代序列都可以定义. for example: ls = list([5, 2 ...

  3. 在Arcmap中加载互联网地图资源的4种方法(转载)

    前一段时间想在Arcmap中打开互联网地图中的地图数据,如影像数据.基础地图数据等,经过简单研究目前总结了四种方法,整理下与大家分享,有些内容可能理解有误,希望大家多多指教.4种方法如下: a)    ...

  4. unity 联机调试(android ios)

    http://blog.csdn.net/OnafioO/article/details/44903491 (这种没用,只是在手机看到画面而已) 手机安装unityRemote并运行,unity中设置 ...

  5. 学习动态性能表(17)--v$segstat&v$segment_statistics

    学习动态性能表 第17篇-(1)-V$SEGSTAT  2007.6.13 本视图实时监控段级(segment-level)统计项,支持oracle9ir2及更高版本 V$SEGSTAT中的常用列 T ...

  6. mendeley 参考文献管理工具

    本文由Suzzz原创,发布于http://www.cnblogs.com/Suzzz/p/4044144.html,转载请保留此声明 目录 介绍 功能 运行截图 安装方法 创建 Desktop Ent ...

  7. MySQL最新版本 MySQL5.7.11 批量自动化一键式安装(转)

    --背景云端 以前都喜欢了源码安装MySQL,总觉得源码是高大上的事情,不过源码也需要时间,特别是make的时候,如果磁盘和cpu差的话,时间很长很长,在虚拟机上安装mysql尤其甚慢了. 现在业务发 ...

  8. Poj 2421 Constructing Roads(Prim 最小生成树)

    题意:有几个村庄,要修最短的路,使得这几个村庄连通.但是现在已经有了几条路,求在已有路径上还要修至少多长的路. 分析:用Prim求最小生成树,将已有路径的长度置为0,由于0是最小的长度,所以一定会被P ...

  9. svn更新报错:出现skipped:目标路径

    skipped 意为:跳过此目标文件: 一般出现在目标文件被删除后,重新更新情况下: 解决办法及结果: 1,回到此目标文件的上一层文件夹,team-clean up,结果不成功 2,回到此目标文件的上 ...

  10. maven配置的问题,maven的环境变量配置

    不要在用户变量处配置用户变量,直接将maven的bin文件夹路径配置到path环境变量