摘要:知识点总结连接步骤及知识点总结连接数据库步骤依序关闭使用的对象连接操作加载对应驱动建立连接连接对象内部包含了对象,是一个远程连接。比较耗时这是对象管理的一个要点真正开发中,为了提高效率,都会使用连接池来管理连接对象张柏芝女张三执行结果
Java知识点总结(JDBC-连接步骤及CRUD)
@(Java知识点总结)[Java, JDBC]
连接数据库步骤依序关闭使用的对象连接:
ResultSet -> Statement -> Connection
CRUD操作</>复制代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class StudentDao {
private static Connection getConn() {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "123";
Connection conn = null;
try {
Class.forName(driver); //classLoader,加载对应驱动
//建立连接(连接对象内部包含了Socket对象,是一个远程连接。比较耗时!这是Connection对象管理的一个要点!)
//真正开发中,为了提高效率,都会使用连接池来管理连接对象!
conn = (Connection) DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
private static int insert(User user) {
Connection conn = getConn();
int i = 0;
String sql = "insert into users (Name,Sex,Age) values(?,?,?)";
PreparedStatement pstmt = null;
try {
pstmt = (PreparedStatement) conn.prepareStatement(sql);
pstmt.setString(1, user.getName());
pstmt.setString(2, user.getSex());
pstmt.setInt(3, user.getAge());
i = pstmt.executeUpdate();
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return i;
}
private static int update(User user) {
Connection conn = getConn();
int i = 0;
String sql = "update users set Age="" + user.getAge() + "" where Name="" + user.getName() + """;
PreparedStatement pstmt = null;
try {
pstmt = (PreparedStatement) conn.prepareStatement(sql);
i = pstmt.executeUpdate();
System.out.println("resutl: " + i);
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return i;
}
private static Integer getAll() {
Connection conn = getConn();
String sql = "select * from users";
PreparedStatement pstmt =null;
ResultSet rs = null;
try {
pstmt = (PreparedStatement)conn.prepareStatement(sql);
rs = pstmt.executeQuery();
int col = rs.getMetaData().getColumnCount();
System.out.println("============================");
while (rs.next()) {
for (int i = 1; i <= col; i++) {
System.out.print(rs.getString(i) + "
");
if ((i == 2) && (rs.getString(i).length() < 8)) {
System.out.print("
");
}
}
System.out.println("");
}
System.out.println("============================");
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
rs.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
private static int delete(String name) {
Connection conn = getConn();
int i = 0;
String sql = "delete from users where Name="" + name + """;
PreparedStatement pstmt = null;
try {
pstmt = (PreparedStatement) conn.prepareStatement(sql);
i = pstmt.executeUpdate();
System.out.println("resutl: " + i);
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return i;
}
public static void main(String[] args) {
getAll();
insert(new User("张柏芝", "女", 43));
getAll();
update(new User("张三", "", 38));
delete("Achilles");
getAll();
}
}
</>复制代码
public class User {
private int id;
private int age;
private String name ;
private String sex;
public User( String name, String sex,int age) {
this();
this.age = age;
this.name = name;
this.sex = sex;
}
public User() {
}
public int getAge() {
return age;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getSex() {
return sex;
}
public void setAge(int age) {
this.age = age;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setSex(String sex) {
this.sex = sex;
}
}
执行结果:
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/71427.html
摘要:前言由于写的文章已经是有点多了,为了自己和大家的检索方便,于是我就做了这么一个博客导航。 前言 由于写的文章已经是有点多了,为了自己和大家的检索方便,于是我就做了这么一个博客导航。 由于更新比较频繁,因此隔一段时间才会更新目录导航哦~想要获取最新原创的技术文章欢迎关注我的公众号:Java3y Java3y文章目录导航 Java基础 泛型就这么简单 注解就这么简单 Druid数据库连接池...
摘要:使用需要使用作为事务管理器。两个事务互不影响。这是默认的隔离级别,使用数据库默认的事务隔离级别下边的四个与的隔离级别相对应这是事务最低的隔离级别,它充许另外一个事务可以看到这个事务未提交的数据。这种事务隔离级别可 Spring事务整理 工作了几年了,今天抽时间整理一下spring的事务,说起spring的事务是面试的时候面试官经常提及的问题,接下来结合网上资料再总结下spring的事务...
摘要:忽略该字段的映射省略创建数据访问层接口,需要继承,第一个泛型参数是实体对象的名称,第二个是主键类型。 SpringBoot 是为了简化 Spring 应用的创建、运行、调试、部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖就可以轻易的搭建出一个 WEB 工程 上一篇介绍了Spring JdbcTempl...
摘要:数据库连接池什么是数据库连接池简单来说数据库连接池就是提供连接的。。。 1.数据库连接池 什么是数据库连接池 简单来说:数据库连接池就是提供连接的。。。 为什么我们要使用数据库连接池 数据库的连接的建立和关闭是非常消耗资源的 频繁地打开、关闭连接造成系统性能低下 编写连接池 编写连接池需实现java.sql.DataSource接口 创建批量的Connection用Linke...
阅读 3399·2021-11-12 10:36
阅读 1544·2019-08-30 15:56
阅读 2638·2019-08-30 11:26
阅读 739·2019-08-29 13:00
阅读 3731·2019-08-28 18:08
阅读 2892·2019-08-26 17:18
阅读 2035·2019-08-26 13:26
阅读 2583·2019-08-26 11:39
极致性价比!云服务器续费无忧!
Tesla A100/A800、Tesla V100S等多种GPU云主机特惠2折起,不限台数,续费同价。
NVIDIA RTX 40系,高性价比推理显卡,满足AI应用场景需要。
乌兰察布+上海青浦,满足东推西训AI场景需要