day23 JDBC(Java Database Connection)连接 与 通配符与插入返回主键
JDBC配置connector的jar包
1.项目下新建lib文件夹
2.将mysql-connector-java-版本号.jar复制到lib目录下
3.右键项目名,选择Properties选项
4.点击Add JARS...,选中刚复制的jar包后,点击Apply=》OK
连接数据库
连接的过程
1)加载驱动
2)创建连接对象
3)创建执行对象
4)执行sql语句
5)处理返回结果
6)关闭访问资源
public class JdbcDemo01{
public static final String URL = "jdbc:mysql://localhost:3306/situ001?serverTimezone=UTC&useSSL=false";//&useSSL=false可不加,serverTimezone=UTC表示时区
public static final String USER = "root";
public static final String PASS = "123456";
static Connection conn = null;
static PrepareStatement ps = null;
static ResultSet rs = null;
//建立数据库连接
public static void init(){
try{
//加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//建立连接
conn = DriverManager.getConnection(URL,USER,PASS);
System.out.println("建立连接成功");
}catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
//查询
public static void query(String sql){
init();
try{
ps = conn.prepareStatement(sql);
rs = ps.excuteQuery(sql);
while(rs.next()){
System.out.println(rs.getInt("id")+","+rs.getString("s_name"));
}
}catch (SQLException e) {
e.printStackTrace();
}finally{
close();
}
}
//修改表(增删改)
public static void excute(String sql){
init();
try{
ps = conn.prepareStatement(sql);
int rows = ps.excuteUpdate(sql);
if(rows == 0) System.out.println("没有改变表中的记录");
System.out.println("修改成功");
}catch (SQLException e) {
e.printStackTrace();
}finally{
close();
}
//添加一条数据同时返回其主键
public static Integer addReturnPK(String sql){
init();
try{
ps = conn.prepareStatement(sql,ps.RETURN_GENERATED_KEYS);
int rows = ps.excuteUpdate();
if(rows == 0) return null;
Result rs2 = ps.getGeneratedKeys();
Integer id = null;
while(rs2.next()){
id = rs2.getInt(1);
}
return id;
}catch (SQLException e) {
e.printStackTrace();
return null;
}finally{
close();
}
}
//关闭连接
public static void close(){
try {
if(rs != null) rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(ps != null) ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args){
//测试查询方法
String sql = "select*from student";
}
}
查询 和 增删改方法的优化(输入参数)
public static void excute(String sql, String name, Integer age){
init();
try {
ps = conn.prepareStatement(sql);
ps.setString(1, name);
ps.setInt(2, age);
int rows = ps.executeUpdate();
if (rows >0) {
System.out.println("执行成功");
}else{
System.out.println("没有影响记录");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("执行失败");
}finally {
close();
}
}
public static void query(String sql, Integer id,String name){
init();
try {
ps = conn.prepareStatement(sql);
ps.setInt(1, id);
ps.setString(2, name);
rs = ps.executeQuery();
while(rs.next()){
System.out.println(rs.getInt("id")+","+rs.getString("s_name"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
close();
}
}
day23 JDBC(Java Database Connection)连接 与 通配符与插入返回主键的更多相关文章
- [19/05/06-星期一] JDBC(Java DataBase Connectivity,java数据库连接)_基本知识
一.概念 JDBC(Java Database Connectivity)为java开发者使用数据库提供了统一的编程接口,它由一组java类和接口组成.是java程序与数据库系统通信的标准API. J ...
- JDBC(Java Database Connectivity,Java数据库连接)API是一个标准SQL(Structured Query Language
JDBC(Java Database Connectivity,Java数据库连接)API是一个标准SQL(Structured Query Language,结构化查询语言)数据库访问接口,它使数据 ...
- jdbc、Mybatis插入数据主键回显的实现方法
插入数据的时候,往往需要获取主键值.但是有时候主键是自增长的那么,就不太适用手动添加主键值了,此时需要一种可以回显主键参数的方法, 下面以jdbc.mybatis的实现举例 此时使用的是jdbc的话或 ...
- JDBC 返回主键
转载至:https://www.liyongzhen.com/ 上一节课里我们学习通过PreparedStatement对象执行带参数的查询SQL和修改SQL. 这节课我们学习使用 PreparedS ...
- Java MyBatis 插入数据库返回主键
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...
- Java MyBatis insert数据库数据后返回主键
<selectKey keyProperty="id" resultType="java.lang.Long" order="AFTER&quo ...
- Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了
insertSelective---Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了 https://www.cnblogs.com/xi ...
- JDBC (Java DataBase Connectivity)数据库连接池原理解析与实现
一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大 ...
- [19/05/07-星期二] JDBC(Java DataBase Connectivity)_CLOB(存储大量的文本数据)与BLOB(存储大量的二进制数据)
一. CLOB(Character Large Object ) – 用于存储大量的文本数据 – 大字段有些特殊,不同数据库处理的方式不一样,大字段的操作常常是以流的方式来处理的.而非一般的字段,一次 ...
- [19/05/08-星期三] JDBC(Java DataBase Connectivity)_ORM(Object Relationship Mapping, 对象关系映射)
一.概念 基本思想: – 表结构跟类对应: 表中字段和类的属性对应:表中记录和对象对应: – 让javabean的属性名和类型尽量和数据库保持一致! – 一条记录对应一个对象.将这些查询到的对象放到容 ...
随机推荐
- Visual Studio 2022 Community 不完全攻略
0. 前言 建议结合视频阅读哦 Visual Studio 2022 Community 不完全攻略 有问题或者意见欢迎评论 ! 1. 下载&安装 Visual Studio Communit ...
- 使用logstash同步mysql 多表数据到ElasticSearch实践
参考样式即可,具体使用配置参数根据实际情况而定 input { jdbc { jdbc_connection_string => "jdbc:mysql://localhost/数据库 ...
- shell下cat EOF中变量$处理
在使用cat EOF中出现$变量通常会直接被执行,显示执行的结果.若想保持$变量不变需要使用 \ 符进行注释 [root@localhost ~]# cat >> aa.txt <& ...
- 2022.9.10-2022.9.12 Java第一次课总结
本节课中的问题总结如下: 1.Java的基本运行单位是类还是方法? 答:Java的基本运行单位是类. 2.类由什么组成? 答:类由变量/方法/属性/事件等部分组成,其中方法就是我们所熟悉的函数,属性即 ...
- SpringBoot入门项目CRM学习过程中的报错记录(更新ing)
在用mybatis自动生成实体类和mapper时报错..... is unrecognized or represents more than one time zone. You must conf ...
- 20220925 - CSP-S 模拟赛 #2
20220925 - CSP-S 模拟赛 #2 时间记录 \(8:00-8:20\) 浏览题面 \(8:20-8:45\) T1 想到了分块计算,但是在手推样例的过程中,发现样例的数据并不能真正构成一 ...
- JSP脚本知识
JSP脚本元素 1.在jsp中嵌入的服务端运行的小程序称为脚本.实质是java程序. 2.脚本元素可以分为三类:表达式.Scriptlet.声明. 表达式 计算java表达式的值,得到的结果转化为字符 ...
- win10本地python第三方库安装成功,但是pycharm项目无法使用解决方案
一.背景win10本地python第三方库安装成功,但是pycharm项目无法使用解决方案如本地安装的python中的request库,在pycharm项目中居然无法使用,比较郁闷 pip list ...
- Spring知识框架
- 测试开发mysql性能调优总结(一)
测试开发mysql性能调优总结 mysql在创建表的时候,对每个字段选择合适的数据类型很重要! 根据个人的经验总结: 整数类型选择 INT小数类型选择 DECIMAL字符串类型选择 TEXT日期时间选 ...