发表于: 2016-08-18 11:03:14
1 2628
今天完成的事情:今天在各位师兄的帮助下对mybatis的整体结构有了进一步的了解,从SqlMapConfig.xml这个总的配置文件中通过jdbc连接和管理数据库,再配置连接池,然后再mapper resource里连接User.xml,User.xml中配置sql语句,执行前封装为Statement对象
User.xml的配置大概如下:
<mapper namespace="test">
/* namespace在dao原始开发时命名没要求,但在代理开发时指定为mappe接口的全限定名 */
<select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">
SELECT * FROM USER WHERE id= #{id}
/* id唯一标识, parameterType定义输入参数类型,通过#{}接收;resultType/resultMap定义输出参数类型,
*/
</select>
<select id="findUserByName" parameterType="java.lang.String" resultType="cn.itcast.mybatis.po.User">
select * from user where username like '%${value}%'
</select>
/* like是模糊搜索,只要包含该搜索条件的都能被搜索到,'% %' ${}表示sql的拼接,通过${}将参数的内容不加任何修饰地拼接在sql中。
*/
<insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">
<selectKey keyProperty="id" order="AFTER" resultType="int">
select LAST_INSERT_ID()
</selectKey>
/* selectKey用于进行主键返回,定义了获取主键值的sql。order是设置selectKey中sql执行的顺序
以上是对数据库进行增删改查的基本操作
*/
INSERT INTO USER(username,birthday,sex,address) VALUES(#{username},#{birthday},#{sex}, #{address})
</insert>
</mapper>
而UserDao的接口里面只写了这三个方法:
public interface UserDao {
public User findUserById(int id) throws Exception;
//第一个User为返回值类型,findUserById为方法名,(int id)为参数以及类型。
public List<User> findUserByUsername(String username) throws Exception;
public void insertUser(User user) throws Exception;
}
而接口的实现类则放到了UserDaoImpl里。
明天计划的事情:自己写一个Demo
遇到的问题:lib文件夹需要哪些jar包不清楚
收获:对mybatis的结构更熟悉了。
评论