java框架Mybatis的第一个程序
1:什么是MyBatis
-
MyBatis 是一款优秀的持久层框架
-
MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程
-
MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类映射成数据库中的记录。
-
简化了JDBC的操作
Mybatis官方文档 : http://www.mybatis.org/mybatis-3/zh/index.html 多看官方文档
介绍一下Mybatis的优点:简单 上手难度小 解耦合 使用人数多
开始我们第一个Mybatis程序需要准备什么环境搭建
1:jdk8或以上- maven- idea- mysql
开始我的的第一步 :先准备数据库数据
开始我们的第二步:maven项目里面导入mysql依赖(我使用的是8.0以上的mysql) :
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.19</version> </dependency>
2:再导入mybatis依赖
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency>
3:第三步开始:编写MyBatis核心配置文件:(可以查看官方文档参考):
<configuration> <properties resource="db.properties"> </properties> <typeAliases> <package name="com.kuang.jieko"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com\kuang\day1\UserMapper.xml"></mapper> </mappers> </configuration>
因为我这边使用了roperties 来从外部导入的资源文件
资源文件:因为我是mysql8.0所以加了时区 8.0一下把去掉即可
driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/luyunjie?useSSL=false&useUnicode=false&characterEncoding=UTF-8&serverTimezone=UTC username=root password=5825600
配置实体类和接口:我这边使用的是lombok工具所以可以不用重新构造方法 set get方法 toString方法
import lombok.Data;
@Data
public class User {
private int id;//这边的属性名字最好和数据库里面的数据名字一样
private String name;
private String pwd;
lombok工具:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.4</version> </dependency>
写一个工具类来简化操作:(因为看的狂神mybatis视频 所以工具类几乎一模一样 )
import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.InputStream; public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } //获取SqlSession连接 public static SqlSession getSession(){ return sqlSessionFactory.openSession();//这里可以填true 默认为false 这里可以设置自动提交事务 } }
然后写接口方法:
public interface UserMapper { //查询 List<User> getUserList(); }
最好在写接口的包中再写Mapper.xml配置文件 来执行mysql语句:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--绑定对应的Dom-- 后面这个namespace绑定接口的地址> <mapper namespace="com.kuang.day1.UserMapper"> <select id="getUserList" resultType="User"> select * from user </select> </mapper>
也可以使用注解来执行mysql语句:
public interface UserMapper { @Select("select *from user") List<User> getUserList();//但写不了复杂的sql语句 }
最后一步编写测试类:(我使用的是junit驱动 )
public class UserDaoTset { @Test public void test(){ SqlSession sqlSession= MybatisUtils.getSession(); UserMapper userDao=sqlSession.getMapper(UserMapper.class); List<User> userList = userDao.getUserList(); for (User user : userList){ System.out.println(user); } sqlSession.close(); } }
junit驱动:
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency>
java小白刚学mybatis 有些写的不好的地方多多包涵!