以mysql为例:
一、需要的架包:mybatis.jar和mysql-connector-java.jar
二、一般会有两类配置文件:数据库配置文件和要执行的sql语句
数据库配置文件(配置文件中有关数据库的信息可以直接配置也可以通过properties文件进行配置):
1. <?xmlversion="1.0" encoding="UTF-8"?>
2. >
3. <configuration>
4.
5.
6. <propertiesresource="db.properties"/>
7. <environmentsdefault="development">
8. <environmentid="development">
9. <transactionManagertype="JDBC"/>
10. <!-- 配置数据库连接信息 -->
11. <dataSourcetype="POOLED">
12. <propertyname="driver" value="com.mysql.jdbc.Driver"/>
13. <propertyname="url" value="jdbc:mysql://localhost:3306/mydata"/>
14. <propertyname="username" value="root"/>
15. <propertyname="password" value="tian"/>-->
16.
17.
18. <propertyname="driver" value="${driver}"/>
19. <propertyname="url" value="${url}"/>
20. <propertyname="username" value="${name}"/>
21. <propertyname="password" value="${password}"/>
22.
23. </dataSource>
24. </environment>
25. </environments>
26. <mappers>
27. <!-- 注册userMapper.xml文件,
28. >
29. <mapperresource="infomap.xml"/>
30. <mapperclass="mybatis.BatisInfo"></mapper>
31. </mappers>
32. </configuration>
db.properties文件
1. driver=com.mysql.jdbc.Driver
2. url=jdbc:mysql://localhost:3306/mydata
3. name=root
4. password=tian
三、通过sql语句对数据库进行操作
(1)数据库表结构: id,name,password
(2)创建一个与表结构对应类
1. package mybatis
2. publicclass
3.
4. privateint
5. private
6. private
7. publicvoidsetId(int
8. {
9. this.id=id;
10. }
11. publicint
12. {
13. return
14. }
15. publicvoid
16. {
17. this.name=name;
18. }
19. public
20. {
21. return
22. }
23. publicvoid
24. {
25. this.password=password;
26. }
27. public
28. {
29. return
30. }
31.
32. public
33. {
34. return"name"+name+";password"+password;
35. }
36.
37. }
(3)对表进行增删改查配置操作,有两种配置方法:xml和接口类
1)、xml方式:思想就是给每条sql语句设置一个id,然后一个参数的类型和一个返回值的类型以及一条sql语句
1. <?xmlversion="1.0" encoding="UTF-8"?>
2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3. <!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
4. namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀)
5. >
6. <mappernamespace="me.gacl.mapping.userMapper">
7. <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,
8. id属性值必须是唯一的,不能够重复使用parameterType属性指明查询时使用的参数类型,
9. resultType="me.gacl.domain.User"
10. >
11. <!--根据id查询得到一个user对象-->
12. <selectid="getUser" parameterType="int"
13. resultType="mybatis.Info">
14. id=#{id}
15. </select>
16.
17. <insertid="addUser" parameterType="mybatis.Info">
18. insert into info (name, password) values (#{name},#{password})
19. </insert>
20. <deleteid="deleteUser" parameterType="int">
21. id=#{id}
22. </delete>
23.
24. <updateid="updateInfo" parameterType="mybatis.Info">
25. name=#{name},password=#{password} where id=#{id}
26. </update>
27.
28. <selectid="getAllUsers" resultType="mybatis.Info">
29. select * from info
30. </select>
31. </mapper>
通过xml对表进行增删改查
1. @Test
2. publicvoid
3. {
4. true);
5. "me.gacl.mapping.userMapper.addUser"; //xml中的namespace+id
6. new
7. "tian");
8. "tian");
9. int
10. sqlSession.close();
11. "sjdjsjd");
12. }
13. @Test
14. publicvoid
15. {
16. true);
17. "me.gacl.mapping.userMapper.deleteUser";
18. intresult=sqlSession.delete(statement,2);
19. sqlSession.close();
20. System.out.println(result);
21.
22. }
23. @Test
24. publicvoid
25. {
26. true);
27. "me.gacl.mapping.userMapper.getAllUsers";
28. List<Info> list=sqlSession.selectList(statement);
29. sqlSession.close();
30. System.out.println(list);
31. }
2)采用接口注视方法:
接口类:
1. publicinterface
2.
3. //包括一个sql 语句,一个函数及函数的参数,函数返回值
4. @Insert("insert into info(name,password) values(#{name},#{password})")
5. publicint
6.
7. @Delete("delete from info where id=#{id}")
8. publicintdelete(int
9.
10. @Select("select * from info where id=#{id}")
11. publicInfo getById(int
12.
13. @Select("select * from info")
14. public
15.
16. @Update("update info set name=#{name},password=#{password} where id=#{id}")
17. publicint
18.
19. }
通过接口类进行操作
1. @Test
2. publicvoid
3. {
4. true);
5. class); //获得接口类
6. new
7. "annotion");
8. "annotion");
9. int
10. sqlSession.close();
11. System.out.println(result);
12. }
13. @Test
14. publicvoid
15. {
16. true);
17. class);
18. intresult=batisInfo.delete(4);
19. sqlSession.close();
20. System.out.println(result);
21. }
22. @Test
23. publicvoid
24. {
25. true);
26. class);
27. new
28. "annotiontest");
29. "annotiontest");
30. int
31. sqlSession.close();
32. System.out.println(result);
33. }
34. @Test
35. publicvoid
36. {
37. true);
38. class);
39. List<Info> list=batisInfo.getAll();
40. sqlSession.close();
41. System.out.println(list);
42. }