
MyBatis
FixedStarHaHa
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
(一)Hibernate与Mybatis区别
Hibernate:是SQL编写等操作,均由框架完成。这样,出现的问题是常常自动生成的SQL并不是最优的,还有数据库和hibernate是全映射(存就存一个对象,取就取一个对象),所以若要克服以上的缺点,就要学习HQL。--全自动化 所以,我们希望:SQL语句交给我们开发人员编写,希望SQL不失去灵活性---MyBatis SQL与Java编码分离;SQL是开发人员控制的;只要掌握好S...转载 2019-04-09 17:02:36 · 183 阅读 · 0 评论 -
(十六)mapper (待续)
一、使用MyBatis的mapper接口调用时有哪些要求? ① Mapper接口方法名和mapper.xml中定义的每个sql的id相同; ② Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同; ③ Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同; ④ Mappe...原创 2019-05-28 17:09:13 · 271 阅读 · 0 评论 -
(十五)insert
如何获取自动生成的主键值? insert 方法总是返回一个int值 ,这个值代表的是插入的行数。 如果采用自增长策略,自动生成的键值在 insert 方法执行完后可以被设置到传入的参数对象中。 public int addTeacher(teacher tea); 这样能够将数据插入到表中,只是不能获取到键值 <insert id="addTeacher" parameterTy...原创 2019-05-28 14:53:15 · 537 阅读 · 0 评论 -
(十四)动态SQL之bind。sql标签
一、bind bind元素可以从 OGNL 表达式中创建一个变量并将其绑定到上下文。比如: 以下是三种写模糊查询的方式: 调用:stuOperation.selectUser1("%t%"); <select id="selectUser1" resultType="teacher" > select * from `tb_Teacher`wher...原创 2019-05-28 11:35:46 · 3169 阅读 · 0 评论 -
(十三)动态SQL之choose、when、otherwise
类似于java中的switch,多选一 <select id="selectTeacher" parameterType="teacher" resultType="teacher"> select * from tb_Teacher <where> <ch...原创 2019-05-28 11:16:56 · 2564 阅读 · 0 评论 -
(十二)动态SQL之if、trim
Q:mybatis动态SQL有什么用?执行原理?有哪些动态SQL? mybatis动态SQL可以在xml映射文件内,以标签的形式编写动态SQL,执行原理是根据表达式的值完成逻辑判断并动态拼接SQL的功能 mybatis提供了9种动态SQL标签:trim、where、set、foreach、if、choose、when、otherwise 一、if <!-- test:...原创 2019-05-28 11:14:35 · 490 阅读 · 0 评论 -
(十一)bean中包含其他bean集合--collection
public class teacher2 { private Integer id; private String name; private int dep_id; } public class department { private Integer id; private String name; private ArrayList&...原创 2019-05-27 20:09:51 · 601 阅读 · 0 评论 -
(十)bean中包含其他bean,select 用法--association
场景:将数据库取出数据封装成一个bean 一、处理bean中property与column不一致情况(基本数据类型) public teacher selectTeacherByID2(int id); <resultMap type="teacher" id="myTea"> <id column="id" property="id" /> ...原创 2019-05-27 19:34:12 · 848 阅读 · 0 评论 -
(九)获取参数#{}、${}区别
<!-- #{}:可以获取map中的值或者pojo对象属性的值 ${}:可以获取map中的值或者pojo对象属性的值 区别:#:是以预编译的形式,将参数设置到sql中 preparedstatement $:取出的值直接拼接在sql语句中,会有安全问题 大多数情况,用# --> <...原创 2019-05-27 17:26:22 · 393 阅读 · 0 评论 -
(八)参数处理parameter之传入集合 foreach
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach标签的属性主要有item,index,collection,open,separator,close。 item 表示集合中每一个元素进行迭代时的别名,随便起的变量名; index 指定一个名字,用于表示在迭代过程中,每次迭代到的位置,不常用; open 表示该语句以什么开始,常用“(”; s...原创 2019-05-27 17:13:04 · 624 阅读 · 0 评论 -
(七)参数处理parameter或在mapper中如何传递多个参数
一、多个参数 public int selectUser1(String name,int age); <!-- 多个参数会封装成map key:param1 ....,paramn或者参数的索引也可以 value:传入的参数值 #{}就是从map中获取指定的key值 --> <select id="selectUser1...原创 2019-05-27 16:50:55 · 886 阅读 · 0 评论 -
(六)select 中返回数据类型:pojo、单条记录读取到map、多条记录读取到map
一、读取到一个list中 public ArrayList<teacher> SelectUsers(@Param("name")String name); <!-- 模糊查询,获取多条记录,封装成list,但是result类型为里面元素的类型 --> <select id="SelectUsers" param...原创 2019-05-27 16:28:00 · 254 阅读 · 0 评论 -
(五)XML配置: typeAlias、databaseIdProvider、settings
一、typeAlias 默认是将最底层的类名作为简短名,若仍不满意,可以在自定义bean上@Alias("stu")方式,其自定义别名 <typeAliases> <package name="com.bean"></package> </typeAliases> @Alias("tea") public cl...原创 2019-05-27 15:34:39 · 251 阅读 · 0 评论 -
(四)处理数据库与bean属性不一致情况
比如数据库的表结构: bean结构: 在不修改表、bean结构基础上对映射文件进行修改即可(重命名) 一、在SQL中设置别名 stuCountry stu_country <mapper namespace="test.studentMapper"> <select id="selectUserByID" parameterType="...原创 2019-05-20 13:13:43 · 892 阅读 · 0 评论 -
(三)以接口的方式编程(常用)
前面一章,已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询。请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句: session.selectOne("com.yihaomen.mybatis.models.UserMapper.selectUserByID", 1) 其实还有更简单的方法,而且是更好的方法,使用合理描述参数和SQL语句返...转载 2019-04-09 19:33:25 · 368 阅读 · 0 评论 -
(二)开发环境搭建(传统方式)
orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 sessionfactory. 2. 由sessionfactory 产生 session 3. 在session 中完成对数据的增删改查和事务提交等. 4. 在用完之后关闭session 。 5. 在java 对象和 数据库之间有做mappin...转载 2019-04-09 19:11:01 · 179 阅读 · 0 评论 -
(十七)mybatis接口绑定?有哪些是实现方式
接口绑定,就是在MyBatis中任意定义接口,然后把接口里面的方法和SQL语句绑定, 我们直接调用接口方法就可以,这样比起原来了SqlSession提供的方法我们可以有更加灵活的选择和设置。 student user = (student) session.selectOne("test.studentMapper.selectUserByID", 1); 接口绑定有两种实现方式: ...原创 2019-05-28 17:16:21 · 4612 阅读 · 0 评论