java mybatis 实例_Mybatis入门例子

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

48c81dc3cbce61eabe59c80154f3d1ff.png

一、理解什么是MyBatis?

MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。 MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO( Plain Old Java Objects,普通的Java 对象)映射成数据库中的记录.

1)MyBATIS 目前提供了三种语言实现的版本,包括:Java、.NET以及Ruby。(我主要学习java,就讲java的使用)

2)它提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。

3)mybatis与hibernate的对比?

mybatis提供一种“半自动化”的ORM实现。

这里的“半自动化”,是相对Hibernate等提供了全面的数据库封装机制的“全自动化”ORM实现而言,“全自动”ORM实现了POJO和数据库表之间的映射,以及 SQL 的自动生成和执行。

而mybatis的着力点,则在于POJO与SQL之间的映射关系。

二、简单例子(快速入门)

1)首先建立项目java web

1525e3fd81a86baa7f69d022c4058cd3.png

2)导入mybatis所需的jar包

ccce1506af6ce0a6c28bc679747a3ebe.png

mybatis需要jar包:mybatis-3.3.0.jar

mysql驱动jar包:mysql-connector-java-5.1.15.-bin.jar

日志记录jar包:log4j.jar

3)创建数据库数据(mysql)

23e702aaefa707b306b594f14020336f.png

4)mysql驱动配置文件(这样可以优化性能)

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

3f71cb5afcc9abebb6a9dc76d5eb16e3.png

f90e0d40c30e2c9beac1c0d33037833d.png

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

db4851ef9b80ebc513940aebbbebccb7.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

48304ba5e6f9fe08f3fa1abda7d326ab.png

6)创建对应的实体对象

37c49f2dbf5f3914591913203697a586.png

对应的java代码:

961ddebeb323a10fe0623af514929fc1.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

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 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

3a36126c7a8a5ccb88d6a2293735431c.png

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

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 selectAllUser() throws Exception;

43 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

a9fbfc32171ef555729f9120352c80fa.png

UserMapper.xml

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

2

3

4

5

6

7

8

9

10

11

12

14

15

16

17

18

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

20

21

22

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

24

25

26

27 delete from t_user where id=#{id}

28

29

30

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

32

33

34

35 select * from t_user

36

37

38

39

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

2

3

4

5

6

7

8

9

10

11

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

41

42

43

44

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

805737cac9e45f35cd464a7379c78527.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

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 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

9)写个测试

02aeb2ca31202be6fff7e2b01fa1a61c.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

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();

19 // selectUserById();

20 // selectAllUser();

21 }

22

23

24 /**

25 * 新增用户

26 */

27 private static void insertUser() {

28 SqlSession session = DBTools.getSession();

29 UserMapper mapper = session.getMapper(UserMapper.class);

30 UserBean user = new UserBean("懿", "1314520", 7000.0);

31 try {

32 mapper.insertUser(user);

33 System.out.println(user.toString());

34 session.commit();

35 } catch (Exception e) {

36 e.printStackTrace();

37 session.rollback();

38 }

39 }

40

41

42 /**

43 * 删除用户

44 */

45 private static void deleteUser(){

46 SqlSession session=DBTools.getSession();

47 UserMapper mapper=session.getMapper(UserMapper.class);

48 try {

49 mapper.deleteUser(1);

50 session.commit();

51 } catch (Exception e) {

52 e.printStackTrace();

53 session.rollback();

54 }

55 }

56

57

58 /**

59 * 根据id查询用户

60 */

61 private static void selectUserById(){

62 SqlSession session=DBTools.getSession();

63 UserMapper mapper=session.getMapper(UserMapper.class);

64 try {

65 UserBean user= mapper.selectUserById(2);

66 System.out.println(user.toString());

67

68 session.commit();

69 } catch (Exception e) {

70 e.printStackTrace();

71 session.rollback();

72 }

73 }

74

75 /**

76 * 查询所有的用户

77 */

78 private static void selectAllUser(){

79 SqlSession session=DBTools.getSession();

80 UserMapper mapper=session.getMapper(UserMapper.class);

81 try {

82 List user=mapper.selectAllUser();

83 System.out.println(user.toString());

84 session.commit();

85 } catch (Exception e) {

86 e.printStackTrace();

87 session.rollback();

88 }

89 }

90

91

92 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

测试结果

0306083f72d1009be6a56bb0b6a28ee8.pnginsert。

每件事都需要坚持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值