经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Windows » 查看文章
mybatis入门百分百
来源:cnblogs  作者:xsDao  时间:2019/10/12 9:13:48  对本文有异议

今天重新返回来看自己的mybatis,总结了一些更好入门的办法,下面用最简单的方法带领大家入门。
此处先引入类包的关系图片
在这里插入图片描述

1.构建一个==普通==maven项目

构建好之后向pom.xml添加一下依赖

  1. <!--打包方式-->
  2. <packaging>jar</packaging>
  3. <dependencies>
  4. <!--引入mybatis-->
  5. <dependency>
  6. <groupId>org.mybatis</groupId>
  7. <artifactId>mybatis</artifactId>
  8. <version>3.5.2</version>
  9. </dependency>
  10. <!--mysql-->
  11. <dependency>
  12. <groupId>mysql</groupId>
  13. <artifactId>mysql-connector-java</artifactId>
  14. <version>8.0.15</version>
  15. </dependency>
  16. <!--日志-->
  17. <dependency>
  18. <groupId>log4j</groupId>
  19. <artifactId>log4j</artifactId>
  20. <version>1.2.17</version>
  21. </dependency>
  22. <!--测试-->
  23. <dependency>
  24. <groupId>junit</groupId>
  25. <artifactId>junit</artifactId>
  26. <version>4.12</version>
  27. </dependency>
  28. </dependencies>

2.创建数据库,并创建好实体类

  1. /**
  2. *@author xiaoxie
  3. *@date
  4. *@return mybaits 入门
  5. */
  6. //实体类需要跟表明一致
  7. public class User {
  8. private Integer id;
  9. private String username;
  10. private Date birthday;
  11. private String sex;
  12. private String address;
  13. public Integer getId() {
  14. return id;
  15. }
  16. public void setId(Integer id) {
  17. this.id = id;
  18. }
  19. public String getUsername() {
  20. return username;
  21. }
  22. public void setUsername(String username) {
  23. this.username = username;
  24. }
  25. public Date getBirthday() {
  26. return birthday;
  27. }
  28. public void setBirthday(Date birthday) {
  29. this.birthday = birthday;
  30. }
  31. public String getSex() {
  32. return sex;
  33. }
  34. public void setSex(String sex) {
  35. this.sex = sex;
  36. }
  37. public String getAddress() {
  38. return address;
  39. }
  40. public void setAddress(String address) {
  41. this.address = address;
  42. }
  43. @Override
  44. public String toString() {
  45. return "User{" +
  46. "id=" + id +
  47. ", username='" + username + '\'' +
  48. ", birthday=" + birthday +
  49. ", sex='" + sex + '\'' +
  50. ", address='" + address + '\'' +
  51. '}';
  52. }
  53. }

==切记实体类与数据库相互对应==

3.创建一个dao

==这里我们先弄明白最简单的查询==

  1. /**
  2. *@author xiaoxie
  3. *@date
  4. *@return
  5. * 用户持久层接口
  6. */
  7. public interface UserDao {
  8. // 查询所有
  9. @Select(select * from user)
  10. List<User> findAll();
  11. }

4.在resources文件夹下面建立一个与一个mybatis-Config.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. <!--mybatis主配置文件-->
  4. <configuration>
  5. <!--配置环境-->
  6. <environments default="mysql">
  7. <!--配置mysql的环境-->
  8. <environment id="mysql">
  9. <!--配置事务类型-->
  10. <transactionManager type="jdbc"></transactionManager>
  11. <!--配置数据源 连接池-->
  12. <dataSource type="POOLED">
  13. <!--配置连接数据库的基本信息-->
  14. <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
  15. <property name="url" value="jdbc:mysql://localhost:3306/test1?serverTimezone=GMT%2B8"/>
  16. <property name="username" value="root"/>
  17. <property name="password" value="root"/>
  18. </dataSource>
  19. </environment>
  20. </environments>
  21. <!--映射配置文件地址 映射配置文件是每个dao的配置文件-->
  22. <mappers>
  23. <mapper resource="cn/com/scitc/dao/UserDaoMapper.xml"></mapper>
  24. </mappers>
  25. <!--采用注解的方式 应该使用class属性指定被注解的dao全限定类名-->
  26. <mappers>
  27. <mapper class="cn.com.scitc.dao.UserDao"></mapper>
  28. </mappers>
  29. </configuration>

这里讲解一一下里面的关系和作用

1.约束文件--可以直接从网上复制粘贴

  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">
  1. mybatis主配置文件--相当于最外层的一个容器,所有的事务活动都在里面
  1. <configuration>
  2. xxxxxx
  3. </configuration>
  1. 配置环境 ---相当于启动的准备
  1. <environments default="mysql">
  2. ......xxxxx
  3. </environments>

4.配置mysql的环境 --配置mysql的类型
==注意== environment 的id必须与environments的 defualt相同

  1. <environment id="mysql">
  2. xxxxx
  3. </environment>

5.配置事务类型 --默认为jdbc

  1. <transactionManager type="jdbc"></transactionManager>

6.配置数据源

  1. <dataSource type="POOLED">
  2. xxxx常用的url username passsword即可
  3. </ <dataSource >

7.映射地址

  1. <!--映射配置文件地址 映射配置文件是每个dao的配置文件-->
  2. <mappers>
  3. <mapper resource="cn/com/scitc/dao/UserDaoMapper.xml"></mapper>
  4. </mappers>
  5. <!--采用注解的方式 应该使用class属性指定被注解的dao全限定类名-->
  6. <mappers>
  7. <mapper class="cn.com.scitc.dao.UserDao"></mapper>
  8. </mappers>

注意:1.采用xml的格式需要用resources指定映射文件位置

  1. <mappers>
  2. <mapper resource="cn/com/scitc/dao/UserDaoMapper.xml"></mapper>
  3. </mappers>

2.采用注解的方法则用class指定映射文件位置

  1. <mappers>
  2. <mapper class="cn.com.scitc.dao.UserDao"></mapper>
  3. </mappers>

4.在resources下面创建与类相同的dao包,并在dao包下面创建映射文件UserDaoMapper.xml

  1. <!DOCTYPE mapper
  2. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <!--namespace dao权限类名===别名-->
  5. <mapper namespace="cn.com.scitc.dao.UserDao">
  6. <!--配置查询所有-->
  7. <select id="findAll" resultType="cn.com.scitc.domian.User" >
  8. select * from user
  9. </select>
  10. </mapper>

注意:
1.约束文件--可以直接从网上复制粘贴
2.mapper文件都以mapper进行配置 namespaces是指定我们的dao层中的具体接口,有了它,就能够识别是哪一个dao被调用。
3.接下来就是写出语法
xml <select id="findAll" resultType="cn.com.scitc.domian.User" > select * from user </select>
警告:id是接口中定义的方法。
resultType是指定的实体类

测试

  1. public class MybatisTest {
  2. public static void main(String[] args ){
  3. // 1.读取配置文件
  4. try {
  5. InputStream in = Resources.getResourceAsStream("mybatis-Config.xml");
  6. // 2.创建SqlSessionFactory工厂
  7. SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
  8. SqlSessionFactory factory = builder.build(in);
  9. // 3.使用工厂产生SqlSession对象
  10. SqlSession sqlSession = factory.openSession();
  11. // 4.使用SqlSession创建Dao接口代理对象
  12. UserDao userDao = sqlSession.getMapper(UserDao.class);
  13. // 5.使用代理对象执行方法
  14. List<User> users = userDao.findAll();
  15. for (User user : users){
  16. System.out.println("对象有:"+user);
  17. }
  18. // 6.释放资源
  19. sqlSession.close();
  20. in.close();
  21. } catch (IOException e) {
  22. e.printStackTrace();
  23. }
  24. }
  25. }

在这里插入图片描述

原文链接:http://www.cnblogs.com/XSdao/p/11656855.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号