![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql+java+jdbc
有上进心的阿龙
吃不了自律的苦,就要受平庸的罪!学到老,活到老!
展开
-
具体分析mysql数据库的事务问题包括隔离级别
具体分析mysql数据库的事务问题包括隔离级别解决的问题越多,一致性越好,并发性越差,性能越差使用命令行的模式来演示事务的隔离级别1、开启了两个连接使用的数据库的表是:2、确定数据库3、show tables4、查看当前的默认隔离级别5、查看当前是否为默认提交事务select variables like ‘%autocommit%’;6、现在还没有修改自动提交为false,先查看表的数据7、左边的事务修改数据之后,右边的事务去读取,读取到了更新后的数据。原因是原创 2020-12-10 11:50:39 · 92 阅读 · 0 评论 -
数据库事务的问题
需要实现在user_table表中AA给BB转账1000AA.balance-1000同时BB.balance+1000两个事情必须要么执行,要么不执行,这就是事务没有加事务的做法: public static void updateCustomer(String sql,Object... args){ Connection connection = null; PreparedStatement ps = null; try {原创 2020-12-10 09:29:17 · 75 阅读 · 0 评论 -
使用PrepareStatement实现批量插入操作
使用PrepareStatement实现批量插入操作原创 2020-12-08 20:50:04 · 1062 阅读 · 0 评论 -
对order表的两种查询操作的对比,针对sql字段名不等于java属性名(仍然是查询的结果是:一行多列)
对order表的两种查询操作的对比(仍然是查询的结果是:一行多列)注意:order是mysql中的一个关键字这里故意mysql的字段名和javabean的属性名不一样其中一些通用的类和属性配置文件和上一篇文章一样参考:https://blog.csdn.net/qq_41709577/article/details/110733977使用getMetaData1、新建表order新建javabean,注意:导包一定要导sql下的包java.sql.Date下的包order类的代码:原创 2020-12-06 17:36:19 · 367 阅读 · 0 评论 -
使用prepareStatement来实现对数据库的插入操作
1、使用prepareStatement2、数据库的字段中有String和Date类型3、使用Properties来读取文件中的key-value4、占位符?的使用代码:package test_video_kang.test01;import org.junit.Test;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverMan原创 2020-12-05 13:50:06 · 1863 阅读 · 0 评论 -
如何实现批量添加batch版本一
如何实现批量添加batch版本一执行批量添加200次数据的操作:版本一的全部代码:package test_path;import org.junit.Test;import java.sql.*;public class MoHuAndDeleteTest { @Test public void testMoMu(){ Connection conn=null; PreparedStatement ps=null; R原创 2020-12-05 10:04:34 · 186 阅读 · 0 评论 -
使用PrepareStatement实现操作Blob类型的数据(库里图片)
使用PrepareStatement实现操作Blob类型的数据(库里图片)1、向数据库中添加一条记录(包含blob类型的字段)添加之前的数据库的数据数据表customer结构这里的photo使用的是mediumBlob数据类型代码: public void testInsertCustomPhoto() { Connection connection = null; PreparedStatement ps = null; try {原创 2020-12-07 09:22:52 · 258 阅读 · 0 评论 -
论prepareStatement相对于Statement的优点在于哪里?(附加JDBC总结)
论PrepareStatement相对于Statement的优点在于哪里?1、防止了之前使用Statement产生的sql注入问题。最核心的原理就是PrepareStatement可以使用占位符预编译sql语句比如登陆的sql在where条件里面where username=? and password=?这里是完全依据and条件的,不管你两个占位符里面填充的是什么。但是之前的statement不能使用占位符,就可以在两边写or关键字来破坏and逻辑,造成永远的登录成功,这就是所谓的sql注入问原创 2020-12-06 20:33:55 · 398 阅读 · 0 评论 -
使用PrepareStatement实现针对于不同表的查询操作涉及到泛型和反射技术(返回的结果集是多行多列)
使用PrepareStatement实现针对于不同表的查询操作涉及到泛型和反射技术(返回的结果集是多行多列)运行结果截图:数据库对应的两张表测试代码: @Test public void testGetQueryTablesCommonValues(){ String sql="select id,name,birth,email from customer where id in(?,?,?)"; List<Customer> lis原创 2020-12-06 19:49:30 · 243 阅读 · 0 评论 -
使用PrepareStatement实现针对于不同表的查询操作涉及到泛型和反射技术(返回的结果集还是一行多列)
使用PrepareStatement实现针对于不同表的查询操作涉及到泛型和反射技术(返回的结果集还是一行多列)返回的结果是一条记录public static <T> T queryTablesCommon(Class<T> clazz,String sql,Object... args){ Connection connection = null; PreparedStatement ps = null; ResultSet r原创 2020-12-06 19:21:20 · 152 阅读 · 0 评论 -
写一个通用的对一个表的增删查改的操作
写一个通用的对一个表的增删查改的操作1、在数据库中创建一张customer表2、在idea中创建一个文件,存储连接数据库的参数3、在idea中写一个实体类,类名就叫做Customer其中的属性和mysql的customer表的字段名一样实体类代码:package myself_test.entity;import java.util.Date;public class Customer { private Integer id; private String nam原创 2020-12-06 14:57:24 · 268 阅读 · 0 评论 -
数据库工具类第二版(使用德鲁伊druid数据库连接池)
数据库工具类第二版(使用德鲁伊druid数据库连接池)1、什么是数据库连池连接对象的缓冲区。负责申请,分配管理,释放连接的操作。2、为什么要使用数据库连接池不使用数据库连接池,每次都通过DriverManager获取新连接,用完直接抛弃断开,连接的利用率太低,太浪费。对于数据库服务器来说,压力太大了。我们数据库服务器和Java程序对连接数也无法控制,很容易导致数据库服务器崩溃。我们就希望能管理连接。我们可以建立一个连接池,这个池中可以容纳一定数量的连接对象,一开始,我们可以先替用户先创建好一些原创 2020-12-05 15:25:51 · 169 阅读 · 0 评论 -
数据库工具类第一版(DBUtils)
数据库工具类第一版(DBUtils)只是将一些重复的代码封装到一个类中去:代码:实体类Userpackage test_path.entity;public class User { //专门用来映射mysql数据库的t_user映射的。建议其中的属性名或成员变量和表中的字段名保持一致 private Integer id; private String uname; private String upwd; private String birth;原创 2020-12-05 15:15:45 · 122 阅读 · 0 评论 -
如何实现批量添加batch版本二(效率高)
如何实现批量添加batch版本二原创 2020-12-05 10:51:06 · 292 阅读 · 0 评论 -
使用PreparedStatement实现CRUD操作
使用PreparedStatement实现CRUD操作CRUD:C:createR:retrive检索U:updateD:deletejava.sql包中定义了三个接口对数据库调用的不同方式1.statement用于执行静态SQL语句并返回它所生成的结果集(开发中不用)2.preparedStatement(开发中用的居多!)3.CallableStstement(适用于存储过程,再框架中使用)使用statement的弊端有什么?使用PrepareStatement来代替Statem原创 2020-12-05 10:21:11 · 89 阅读 · 0 评论 -
如何获取mysql设置的自动增长的主键id值
如何获取mysql设置的自动增长的主键id值错误代码:package test_path;import org.junit.Test;import java.sql.*;public class MoHuAndDeleteTest { @Test public void testMoMu(){ Connection conn=null; PreparedStatement ps=null; ResultSet rs原创 2020-12-05 09:45:36 · 753 阅读 · 0 评论 -
实现批量删除和模糊查询
实现批量删除和模糊查询1、实现批量删除:package test_path;import org.junit.Test;import java.sql.*;public class MoHuAndDeleteTest { @Test public void testMoMu(){ Connection conn=null; PreparedStatement ps=null; ResultSet rs=null;原创 2020-12-05 09:29:40 · 260 阅读 · 0 评论 -
使用statement完整的实现对数据库的查询操作
使用statement完整的实现对数据库的查询操作1、使用statement2、工具:mysql,mysqlyog,idea3、使用文件将连接数据库的user,password,url,driverClass=com.mysql.jdbc.Driver这些信息封装在一个文件jdbc中4、t_user表5、test1数据库完整代码:package test_jdbc;import org.junit.Test;import java.io.IOException;import java原创 2020-12-04 20:21:24 · 861 阅读 · 0 评论 -
关于路径的问题getResourceAsStream
这里区别的主要是两种方式,一种是this.class.getResourceAsStream(“jdbc1”)第二种是:Test.class.getClassLoader().getResourceAsStream(“name”);首先讲一下,对于使用ClassLoader,创建的文件最好是在src下创建,这样参数直接写文件名就好了,不用考虑其他的东西暂时还不知道,如果在当前包下建的文件,该怎么写参数path而对于没有ClassLoader这个东西的getResourceAsStream新建的原创 2020-12-04 20:03:04 · 273 阅读 · 0 评论 -
使用jdbc原生态手写statement连接数据库并查询某一张表
数据库:mysql,可视化工具SQLyog编译器:idea数据库名:test1表名:t_user那些连接数据库的用户名,密码,url全部封装在src下的一个叫jdbc的文件下,通过Properties类去加载并使用它。最终的代码:最终的代码: @org.junit.Test public void testConnectionFinal(){ //这个String类型的参数是什么意思?答:是数据文件的路径,一般将它新建在src下 try {原创 2020-12-04 18:16:50 · 201 阅读 · 0 评论 -
四步手把手教你使用java程序来创建mysql的jdbc连接对象-方式四(最终版)
四步手把手教你使用java程序来创建mysql的jdbc连接对象-方式四先看方式三: String url="jdbc:mysql://localhost:3306/myemployees"; Class clazz = Class.forName("com.mysql.jdbc.Driver"); Connection connection = DriverManager.getConnection(url, "root", "root"); Syst原创 2020-12-04 15:15:46 · 100 阅读 · 0 评论 -
四步手把手教你使用java程序来创建mysql的jdbc连接对象-方式三
四步手把手教你使用java程序来创建mysql的jdbc连接对象-方式三看一下方式二:Class clazz = Class.forName("com.mysql.jdbc.Driver"); Driver driver= (Driver) clazz.newInstance(); String url= "jdbc:mysql://localhost:3306/myemployees"; Properties properties=new Propert原创 2020-12-04 14:47:06 · 100 阅读 · 0 评论 -
四步手把手教你使用java程序来创建mysql的jdbc连接对象-方式一
四步手把手教你使用java程序来创建mysql的jdbc连接对象-方式一wx:rtl18379678383(欢迎骚扰,喜欢结交喜欢敲代码的兄弟姐妹们hhh)首先声明一下,这里其实后续还会有方式二三四,但是,这并不是说创建jdbc的连接对象有四种方式,不是的,而是,手把手教,慢慢循序渐进,要不然,突然来了一个最终版,很多小白(好吧其实我也是个小白)根本就看不懂。前提,我们需要在我们的测试module里面导入mysql的jar包因为jdbc只是给我们提供了一些接口规范,并没有实现方法,不同的数据库厂商根原创 2020-12-04 14:06:43 · 359 阅读 · 1 评论