通用查询函数 //使用PreparedStatement实现对不同表的通用的返回一个对象的查询操作 //使用泛型机制,参数里先传入一个类的类型 public static <T> T getInstance(Connection con,Class<T> clazz,String sql,Objec ...
分类:
数据库 时间:
2019-11-13 22:30:29
阅读次数:
99
首先是连接,关闭资源等数据库操作 将连接数据库,关闭资源封装在JDBCUtils里 package jdbc.utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedState ...
分类:
数据库 时间:
2019-11-13 00:50:42
阅读次数:
102
public class BaseDao { /** 连接 */ protected Connection con; /** SQL语句对象 */ protected PreparedStatement ps; /** 结果集合对象 */ protected ResultSet rs; /** * ...
分类:
数据库 时间:
2019-11-04 19:24:39
阅读次数:
86
61,JDBC访问数据库的基本步骤是什么? 1,加载驱动 2,通过DriverManager对象获取连接对象Connection 3,通过连接对象获取SQL语句执行对象 4,通过SQL语句执行对象进行数据的增删改查,封装对象 5,关闭资源 62,说说preparedStatement和Stateme ...
分类:
编程语言 时间:
2019-11-03 01:07:45
阅读次数:
116
第1章MyBatis框架配置文件详解 1.1 typeHandlers类型转换器 每当MyBatis 设置参数到PreparedStatement 或者从ResultSet 结果集中取得值时,就会使用TypeHandler 来处理数据库类型与java 类型之间转换。下表描述了默认 TypeHandl ...
分类:
其他好文 时间:
2019-10-16 09:32:56
阅读次数:
82
#{}:如果传入的是字符串,则会将其中的值作为字符串拼接到sql上。 安全。 ${}:如果传入的是字符串,则不会作为字符串,而是直接拼接到sql上。不安全。 #{}和${} #{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java数据类型和jdb ...
分类:
其他好文 时间:
2019-10-06 20:57:55
阅读次数:
108
prepareCall 和 prepareStatement 有什么区别? prepareCall 和 prepareStatement 有什么区别? CallableStatement继承自PreparedStatement.也就是说:CallableStatement可以执行存储过程也可以执行s ...
分类:
其他好文 时间:
2019-10-05 16:51:50
阅读次数:
74
1、数据库连接创建、释放频繁造成系统资源浪费,影响系统性能,可使用数据库连接池解决此问题。 2、sql语句中在代码中硬编码,代码不易维护,sql变动需要改变java代码。 3、使用preparedStatement向占有位符号传参数存在硬编码。where条件不一定,修改sql就要修改代码,不易于维护 ...
分类:
数据库 时间:
2019-10-05 00:45:05
阅读次数:
105
1、"#" 简单来说"#"在编译时使用"?"占位符标记,可以有效防止参数注入,相当于我们使用JDBC操作时的PreparedStatement。 2、"$" 直接把参数拼接到SQL中执行相当于JDBC操作时的Statement 3、参数作为非SQL关键字传递 <insert id="addUser" ...
分类:
移动开发 时间:
2019-10-04 20:57:18
阅读次数:
150
文章参考:@张井天的博客 #{...}是经过预处理的语句,可以防止SQL注入,被当做字符串来处理,对应JDBC中的PreparedStatement。推荐使用这种方法。 ${...}直接取值,有被注入的风险,对应JDBC中的Statement。不推荐使用,但在有些时候只能用这种方法,比如${...} ...
分类:
其他好文 时间:
2019-09-29 09:40:00
阅读次数:
86