我个人喜欢把所需要使用到的包先建立好。配置文件先创建好。

MyBatis入门

MyBatis入门

5)添加mybatis配置文件mybatis.cfg.xml

MyBatis入门


1?<?xml version="1.0"?encoding="UTF-8"?>  

2?<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">  

?3?<configuration>  

4?  

5 ??<!-- 引入外部配置文件 -->  

6 ??<properties?resource="mysql.properties"></properties>  

7 ? ?  

8 ? ?<!-- 配置mybatis运行环境 -->  

9 ? ? ?<environments?default="cybatis">  

10 ? ? ? ??<environment?id="cybatis">  

11 ? ? ? ? ? ??<!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->  

12 ? ? ? ? ? ??<transactionManager?type="JDBC"?/>  

13 ? ? ? ? ? ??  

14 ? ? ? ? ? ??<!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->  

15 ? ? ? ? ? ??<!-- POOLED 表示支持JDBC数据源连接池 -->  

16 ? ? ? ? ? ??<!-- UNPOOLED 表示不支持数据源连接池 -->  

17 ? ? ? ? ? ??<!-- JNDI 表示支持外部数据源连接池 -->  

18 ? ? ? ? ? ??<dataSource?type="POOLED">  

19 ? ? ? ? ? ? ? ??<property?name="driver"?value="${jdbc.driver}"?/>  

20 ? ? ? ? ? ? ? ??<property?name="url"?value="${jdbc.url}"?/>  

21 ? ? ? ? ? ? ? ??<property?name="username"?value="${jdbc.username}"?/>  

22 ? ? ? ? ? ? ? ??<property?name="password"?value="${jdbc.password}"?/>  

23 ? ? ? ? ? ??</dataSource>  

24 ? ? ? ??</environment>  

25 ? ??</environments>?  

26 ? ??  

27?</configuration>

6)创建对应的实体对象

MyBatis入门

对应的java代码:


1?package?com.cy.mybatis.beans;  

2?  

3?import?java.io.Serializable;  

4?  

5?public?class?UserBean?implements?Serializable{  

6?  

7?? ??private?static?final?long?serialVersionUID =?1L;  

8?? ??private?Integer id;  

9?? ??private?String username;  

10?? ??private?String password;  

11?? ??private?Double account;  

12?? ??  

13?? ??public?UserBean() {  

14?? ? ? ??super();  

15?? ? }  

16?? ??  

17?? ??public?UserBean(String username, String password, Double account) {  

18?? ? ? ??super();  

19?? ? ? ??this.username = username;  

20?? ? ? ??this.password = password;  

21?? ? ? ??this.account = account;  

22?? ? }  

23?  

24?? ??public?UserBean(Integer id, String username, String password, Double account) {  

25?? ? ? ??super();  

26?? ? ? ??this.id = id;  

27?? ? ? ??this.username = username;  

28?? ? ? ??this.password = password;  

29?? ? ? ??this.account = account;  

30?? ? }  

31?  

32?? ??public?Integer?getId() {  

33?? ? ? ??return?id;  

34?? ? }  

35?  

36?? ??public?void?setId(Integer id) {  

37?? ? ? ??this.id = id;  

38?? ? }  

39?  

40?? ??public?String?getUsername() {  

41?? ? ? ??return?username;  

42?? ? }  

43?  

44?? ??public?void?setUsername(String username) {  

45?? ? ? ??this.username = username;  

46?? ? }  

47?  

48?? ??public?String?getPassword() {  

49?? ? ? ??return?password;  

50?? ? }  

51?  

52?? ??public?void?setPassword(String password) {  

53?? ? ? ??this.password = password;  

54?? ? }  

55?  

56?? ??public?Double?getAccount() {  

57?? ? ? ??return?account;  

58?? ? }  

59?  

60?? ??public?void?setAccount(Double account) {  

61?? ? ? ??this.account = account;  

62?? ? }  

63?  

64?? ??@Override  

65?? ??public?String?toString() {  

66?? ? ? ??return?"UserBean [id="?+ id +?", username="?+ username +?", password="  

67?? ? ? ? ? ? ? ? + password +?", account="?+ account +?"]";  

68?? ? }  

69?? ??  

70?? ??  

71?? ??  

72?  

73?}

7)创建方法接口UserMapper.java和定义操作t_user表的sql映射文件UserMapper.xml

MyBatis入门

?提供简单的增删改查数据信息。


1?package?com.cy.mybatis.mapper;  

2?  

3?import?java.util.List;  

4?  

5?import?com.cy.mybatis.beans.UserBean;  

6?  

7?public?interface?UserMapper {  

8?? ??/**  

9 ? ? ?* 新增用戶  

10 ? ? ?*?@param?user  

11 ? ? ?*?@return  

12 ? ? ?*?@throws?Exception  

13 ? ? ?*/  

14?? ??public?int?insertUser(UserBean user)?throws?Exception;  

15?? ??/**  

16 ? ? ?* 修改用戶  

17 ? ? ?*?@param?user  

18 ? ? ?*?@param?id  

19 ? ? ?*?@return  

20 ? ? ?*?@throws?Exception  

21 ? ? ?*/  

22?? ??public?int?updateUser?(UserBean user,int?id)?throws?Exception;  

23?? ? ?/**  

24 ? ? ? * 刪除用戶  

25 ? ? ? *?@param?id  

26 ? ? ? *?@return  

27 ? ? ? *?@throws?Exception  

28 ? ? ? */  

29?? ??public?int?deleteUser(int?id)?throws?Exception;  

30?? ??/**  

31 ? ? ?* 根据id查询用户信息  

32 ? ? ?*?@param?id  

33 ? ? ?*?@return  

34 ? ? ?*?@throws?Exception  

35 ? ? ?*/  

36?? ??public?UserBean?selectUserById(int?id)?throws?Exception;  

37?? ? ?/**  

38 ? ? ? * 查询所有的用户信息  

39 ? ? ? *?@return  

40 ? ? ? *?@throws?Exception  

41 ? ? ? */  

42?? ??public?List<UserBean>?selectAllUser()?throws?Exception;  

43?}

MyBatis入门

UserMapper.xml


1?<?xml version="1.0"?encoding="UTF-8"?>  

2?<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  

?3?<mapper?namespace="com.cy.mybatis.mapper.UserMapper">  

4?<!-- 自定义返回结果集 -->  

5 ? ?<resultMap?id="userMap"?type="UserBean">  

6 ? ? ? ??<id?property="id"?column="id"?javaType="java.lang.Integer"></id>  

7 ? ? ? ??<result?property="username"?column="username"?javaType="java.lang.String"></result>  

?8 ? ? ? ??<result?property="password"?column="password"?javaType="java.lang.String"></result>  

?9 ? ? ? ??<result?property="account"?column="account"?javaType="java.lang.Double"></result>  

10 ? ??</resultMap>  

11?<!-- 在各种标签中的id属性必须和接口中的方法名相同 , id属性值必须是唯一的,不能够重复使用。parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型-->?? ?  

12?<!-- useGeneratedKeys:( 仅 对 insert 有 用 ) 这 会 告 诉 MyBatis 使 用 JDBC 的getGeneratedKeys?  

13 ? ? ? ? ? ? 方法来取出由数据(比如:像 MySQL 和 SQLServer 这样的数据库管理系统的自动递增字段)内部生成的主键。默认值: false。 -->?? ?  

14?<!--keyProperty: (仅对 insert有用)标记一个属性, MyBatis 会通过 getGeneratedKeys或者通过 insert 语句的 selectKey 子元素设置它的值。默认:不设置。 -->  

15?<!--#{}中的内容,为占位符,当参数为某个JavaBean时,表示放置该Bean对象的属性值 ?-->  

16?  

17?  

18 ? ??<insert?id="insertUser"?useGeneratedKeys="true"?keyProperty="id">  

19 ? ? ? ? insert into t_user (username,password,account) values (#{username},#{password},#{account})  

20 ? ??</insert>  

21 ? ??  

22 ? ??<update?id="updateUser"?>  

23 ? ? ? update t_user set username=#{username},password=#{password},account=#{account} where id=#{id}  

24 ? ??</update>  

25 ? ??  

26 ? ??<delete?id="deleteUser"?parameterType="int">  

27 ? ? ?delete from t_user where id=#{id} ?  

28 ? ??</delete>  

29 ? ??  

30 ? ??<select?id="selectUserById"?parameterType="int"?resultMap="userMap">  

31 ? ? ?select * from t_user where id=#{id}  

32 ? ??</select>  

33 ? ??  

34 ? ??<select?id="selectAllUser"?resultMap="userMap">  

35 ? ? ?select * from t_user  

36 ? ??</select>  

37 ? ??  

38 ? ??  

39?</mapper>

这时需要为mybatis.cfg.xml里注册UserMapper.xml文件。


1?<?xml version="1.0"?encoding="UTF-8"?>  

2?<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">  

?3?<configuration>  

4?  

5 ??<!-- 引入外部配置文件 -->  

6 ??<properties?resource="mysql.properties"></properties>  

7 ??  

8 ??  

9 ? ?<!-- 为JAVA Bean起类别名 -->  

10 ? ?<typeAliases?>  

11 ? ? ? ??<!-- 别名方式1,一个一个的配置 type中放置的是类的全路径,alias中放置的是类别名  

12 ? ? ? ? <typeAliase type="com.cy.mybatis.beans.UserBean" alias="UserBean"/> -->  

13 ? ? ? ??<!-- 别名方式2,自动扫描,将JAVA类的类名作为类的类别名 -->  

14 ? ? ? ??<package?name="com.cy.mybatis.beans"/>  

15 ? ?</typeAliases>  

16 ? ?  

17 ? ?  

18 ? ?<!-- 配置mybatis运行环境 -->  

19 ? ? ?<environments?default="cybatis">  

20 ? ? ? ??<environment?id="cybatis">  

21 ? ? ? ? ? ??<!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->  

22 ? ? ? ? ? ??<transactionManager?type="JDBC"?/>  

23 ? ? ? ? ? ??  

24 ? ? ? ? ? ??<!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->  

25 ? ? ? ? ? ??<!-- POOLED 表示支持JDBC数据源连接池 -->  

26 ? ? ? ? ? ??<!-- UNPOOLED 表示不支持数据源连接池 -->  

27 ? ? ? ? ? ??<!-- JNDI 表示支持外部数据源连接池 -->  

28 ? ? ? ? ? ??<dataSource?type="POOLED">  

29 ? ? ? ? ? ? ? ??<property?name="driver"?value="${jdbc.driver}"?/>  

30 ? ? ? ? ? ? ? ??<property?name="url"?value="${jdbc.url}"?/>  

31 ? ? ? ? ? ? ? ??<property?name="username"?value="${jdbc.username}"?/>  

32 ? ? ? ? ? ? ? ??<property?name="password"?value="${jdbc.password}"?/>  

33 ? ? ? ? ? ??</dataSource>  

34 ? ? ? ??</environment>  

35 ? ??</environments>?  

36 ? ??  

37 ? ??  

38 ? ??<mappers>  

39 ? ? ? ??<!-- 告知映射文件方式1,一个一个的配置  

40 ? ? ? ? <mapper resource="com/cy/mybatis/mapper/UserMapper.xml"/>-->  

41 ? ? ? ??<!-- 告知映射文件方式2,自动扫描包内的Mapper接口与配置文件 -->  

42 ? ? ? ??<package?name="com/cy/mybatis/mapper"/>  

43 ? ??</mappers>  

44?</configuration>

8)需要建立一个工具类文件

MyBatis入门


1?package?com.cy.mybatis.tools;  

2?  

3?import?java.io.Reader;  

4?  

5?import?org.apache.ibatis.io.Resources;  

6?import?org.apache.ibatis.session.SqlSession;  

7?import?org.apache.ibatis.session.SqlSessionFactory;  

8?import?org.apache.ibatis.session.SqlSessionFactoryBuilder;  

9?  

10?public?class?DBTools {  

11?? ??public?static?SqlSessionFactory sessionFactory;  

12?? ??  

13?? ??static{  

14?? ? ? ??try?{  

15?? ? ? ? ? ??//使用MyBatis提供的Resources类加载mybatis的配置文件  

16?? ? ? ? ? ? Reader reader = Resources.getResourceAsReader("mybatis.cfg.xml");  

17?? ? ? ? ? ??//构建sqlSession的工厂  

18?? ? ? ? ? ? sessionFactory =?new?SqlSessionFactoryBuilder().build(reader);  

19?? ? ? ? }?catch?(Exception e) {  

20?? ? ? ? ? ? e.printStackTrace();  

21?? ? ? ? }  

22?? ? ? ??  

23?? ? }  

24?? ??//创建能执行映射文件中sql的sqlSession  

25?? ??public?static?SqlSession?getSession(){  

26?? ? ? ??return?sessionFactory.openSession();  

27?? ? }  

28?? ??  

29?}

9)写个测试

MyBatis入门



1?package com.cy.mybatis.service;  

2?  

3?import?java.util.List;  

4?  

5?import?org.apache.ibatis.session.SqlSession;  

6?  

7?import?com.cy.mybatis.beans.UserBean;  

8?import?com.cy.mybatis.tools.DBTools;  

9?import?com.cy.mybatis.mapper.UserMapper;  

10?  

11?public?class?UserService?{  

12?  

13?? ?  

14?15?? ? ?  

16?? ??public?static?void?main(String[] args) {  

17?? ? ? ? ? insertUser();  

18?// ? ? ? ?deleteUser();