最近项目中用到了mybatis,这个吧小菜没怎么接触过,大好的学习机会——来了,话说最近时间挺紧的,但是不耽误刚才半个小时的微博+半个小时的淘宝,浓浓的负罪感,抓紧学习了~~~
XML
#{} :占位符
${} :拼接符号,sql注入,不建议
selectOne、selectList:返回值、见名知意
parameterType:参数类型
resultType:输出结果类型
不是自增的呐?执行uuid得到主键并赋给User.id ,在insert执行时从User对象中取出id
根据id更新:从user对象中获取id属性值,更新parameterType中对象
小结:
mybatis的增删改、简单的一个示范,SQL还是原来的SQL,不过参数、方法的调用、位置一些不同
XML
#{} :占位符
${} :拼接符号,sql注入,不建议
selectOne、selectList:返回值、见名知意
parameterType:参数类型
resultType:输出结果类型
增:
<insert id="insertUser" parameterType="***.User" >
<!--上面id="" insertUser方法名:;将自增的主键返回到User对象中,order :相对于insert语句的执行顺序-->
<selectKey keyProperty="id" order="AFTER" resultType=“java.lang.Integer”>
SELECT LAST_INSERT_ID();
</selectKey>
insert into user(username,birthday,sex,address) value (#{username},#{birthday},#{sex},#{address})
<insert>
不是自增的呐?执行uuid得到主键并赋给User.id ,在insert执行时从User对象中取出id
<insert id="insertUser" parameterType="***.User" >
<selectKey keyProperty="id" order="BRFORE" resultType=“java.lang.String”>
SELECT uuid();
</selectKey>
insert into user(id,username,birthday,sex,address) value ( #{id},#{username},#{birthday},#{sex},#{address})
<insert>
删
<delete id="deeteUser" parameterType="java.lang.Integer">
delete from user where id=#{id}
</delete>
改:
根据id更新:从user对象中获取id属性值,更新parameterType中对象
<update id="updateUser" parameterType=" ****.User ">
update user set username=#{username},birthday=${birthday},sex=#{sex},address=#{address} where id=#{id}
</update>
程序
<mappers>
<mapper resource="sqlmap/User.xml"/>
</mappers>
@Test
public void findUserByIdTest() throws IOException{
//dao层实现
//配置文件
String resource ="SqlMapConfig.xml";
//得到配置文件
InputStream inputStream=Resources.getResourceAsStream(reasource);
//创建会话工程,传入mybaties的配置文件信息
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
//通过工程得到SqlSession
SqlSession sqlSession=sqlSessionFactory.openSession();
User user=sqlSession.selectOne("test.findUserById",1);
sqlSession.close();
}
小结:
mybatis的增删改、简单的一个示范,SQL还是原来的SQL,不过参数、方法的调用、位置一些不同