MyBatis基础操作
来源:互联网 发布:js获取json长度 编辑:程序博客网 时间:2024/06/05 03:41
增改删操作:
map配置文件中,有Insert,Update,delete等标签用来对应增改删操作。
MyBatis中很重要的一点是:它可以自动检测传入参数对象的属性和sql语句中参数的属性是否在name和类型上匹配的话,就会进行自动替换。同样对于resultType也是一样
- Insert标签,插入
<insert id="insertUser" parameterType="User" statementType="PREPARED" keyProperty="id" useGeneratedKeys="true"> insert into User (userName,password) values (#{userName,jdbcType=VARCHAR},#{password,jdbcType=VARCHAR})</insert>//id: 用于标识该insert sql语句//parameterType: 标识传入的参数类型//keyProperty: 用于定义主键,useGeneratedKeys使用自增,这里插入中缺省了ID这个主键,所以在这里定义一下主键//jdbcType 对应JDBC中的类型//typeAliases 标记定义别名,这里的User就已经是别名,本来需要完全限定名//#{username}就是代表参数测试代码: User one=new User(); one.setName("author001"); one.setPassword("123456"); session.insert("insertUser",one);
- Update标签,更新
<update id="updateUser" parameterType="User"> UPDATE User SET userName = #{userName,jdbcType=VARCHAR}, password =#{password,jdbcType=VARCHAR} WHERE id = #{id,jdbcType=INTEGER}</update>
简单查询:
- Select
Select的所有配置
<select id=”selectPerson” parameterType=”int” parameterMap=” hashmap” resultType=”hashmap” resultMap=”personResultMap” flushCache=”false” useCache=”true” timeout=”10000” fetchSize=”256” statementType=”PREPARED” resultSetType=”FORWARD_ONLY” >
parameterType封装:对象
1. 对象参数自动匹配属性
2. 如果对象属性与列名不一样用别名
//parameterType封装:hashmap//MyBatis同样会自动匹配hashmap中和参数 nama和类型一样的进行替换<select id="loginSelect" resultType="User" parameterType="hashmap"> select * from User where userName=#{userName} and password=#{password}</select>//测试HashMap<String,String> hm=new HashMap();hm.put("userName", "e0001");hm.put("password","123456");JiKeUser onetemp=session.selectOne("loginSelect",hm);//返回多行记录时MyBatis自动封装成List<select id="selectJiKeUserList" resultType="User"> select * from User</select>//测试代码: List<User> ap=session.selectList("selectUserList"); for(User temp:ap) { System.out.println("用户名="+temp.getUserName()); }
- resultType与 resultMap
两者只能有一个成立
resultMap解决复杂查询时的映射问题
<resultMap id="UserMap" type="User"> <id property="id" column="id" /> <result property="userName" column="userName"/> <result property="password" column="password"/> </resultMap>//使用resultMap前,要先定义: <select id="selectUsers" resultMap="UserMap"> select id, userName, password from User </select>
resultMap简单的讲,它的作用就是结果映射。上面这个例子,我们可以直接使用resultType = “User”,因为User的属性和数据库字段名称完全匹配。resultMap一般用于返回结果的属性和数据库字段不匹配时,进行映射的。比如返回类型有个属性为userName,而数据库中对应的字段为user_name,这时候无法进行自动匹配,只能通过resultMap手动映射。
当然我们只要匹配返回类型中和数据库中不匹配的属性,省略的那些匹配的属性还是会自动替换过来的!!
事物:
mybatis事务由两种方式控制:
- JDBC:由JDBC来处理
- MANAGED:由第三方插件来处理,比如Spring
<environment id="development"> <transactionManager type="JDBC" /> ……</environment>
Mybatis JDBC事务管理(典型代码)
try{ session=sqlMapper.openSession(false); //关闭自动提交 …… session.commit(); //提交事务 }catch(Exception e){ session.rollback();} //回滚事务finally{ session.close();} //关闭session
0 0
- Mybatis基础操作
- MyBatis基础操作
- mybatis的基础curd操作
- Mybatis基础操作之存储过程
- mybatis基础操作之存储过程
- 基础Mybatis操作数据库(MySql)(一)
- MyBatis第一讲学习笔记,mybatis入门基础操作
- MyBatis入门3--基本操作:增删改+基础查询
- MyBatis基础
- 【MyBatis 基础】
- MyBatis基础
- Mybatis基础
- Mybatis基础
- MyBatis基础
- MyBatis 基础
- MyBatis基础
- Mybatis基础
- Mybatis基础
- 删数问题
- Python简单实现基于VSM的余弦相似度计算
- 1018. 锤子剪刀布 (20)
- 逆向工程核心原理学习笔记(六):实战开辟新内存区域写入缓冲区跳转修改字符串
- Sass学习总结
- MyBatis基础操作
- 静态泛型方法
- hihoCoder 后续遍历
- Windows问题QA
- 【笔记】springmvc controller返回json的注解@ResponseBody
- 活动选择
- RAMNode相关配置方法
- 为什么一些机器学习模型需要对数据进行归一化?
- C#调用dll的简单demo(托管)