Mybatis 入门之MyBatis环境搭建(第一篇)

 更新时间:2021年04月01日 15:38:46   作者:lijianhua  
Mybatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。这篇文章主要介绍了Mybatis入门第一篇之MyBaits环境搭建,需要的朋友参考下

Mybatis简介

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

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

下面分步骤给搭建介绍mybatis 环境搭建。

1)在工程下引入mybatis-3.4.1.jar包,再引入数据库(mysql,mssql..)包.

2)在src下新建一个配置文件conf.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 引入外部配置文件 -->
 <properties resource="jdbc.properties" />
 <!-- 配置mybatis运行环境 -->
 <environments default="development">
 <environment id="development">
 <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
 <transactionManager type="JDBC" /> 
 <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
 <!-- POOLED 表示支持JDBC数据源连接池 -->
 <!-- UNPOOLED 表示不支持数据源连接池 -->
 <!-- JNDI 表示支持外部数据源连接池 -->
 <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="userMapper.xml"/>
 </mappers> 
</configuration>

这里是通过外部配置文件来存储数据库存信息的,所以加入一个jdbc.properties的数据库存信息

driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://127.0.0.1;databaseName=test
username=sa
password=123456

3)建立一个映射文件 userMapper.xml

<?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">
 <mapper namespace="hw.com.ser.IUser">
 <!-- 查询全部用户 -->
 <select id="queryUsers" resultType="hw.com.pojo.User">
 select * from MS_User
 </select>
 <selectid="queryUserById" resultType="hw.com.pojo.User" parameterType="int">
 Select * From Ms_User Where id=#{id}
 </select> 
</mapper>

(这里要注意的是,namespace属性,因为,此实例是通过接口映射的方式,所以,namespace属性一点要写成接口的路径)附图:

4)建一个映射接口类

package hw.com.ser;
import java.util.List;
import hw.com.pojo.User;
public interface IUser {
 public List<User> queryUsers();
 public User queryUserById(int id);
}

5)建立一个SqlSessionFactory

package hw.com.util;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.Properties;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class SqlSessionFactoryUtil {
 private static SqlSessionFactory sqlSessionFactory = null;
 private static final Class CLASS_LOCK = SqlSessionFactoryUtil.class;
 private SqlSessionFactoryUtil() {
 }
 public static SqlSessionFactory initSqlSessionFactory() {
 String resource = "conf.xml";
 InputStream inputStream = null;
 try {
 inputStream = Resources.getResourceAsStream(resource); 
 } catch (IOException e) {
 e.printStackTrace();
 }
 synchronized (CLASS_LOCK) {
 if (sqlSessionFactory == null) {
 sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
 }
 }
 return sqlSessionFactory;
 }
 public static SqlSession openSqlSession(){
 if(sqlSessionFactory==null){
 initSqlSessionFactory();
 }
 return sqlSessionFactory.openSession();
 }
}

6)建一个pojo

package hw.com.pojo;
import java.util.Date;
public class User {
 private String Id;
 private String UserName;
 private String UserPwd;
 private int DeptmentId;
 private String UserTrueName;
 private String Email;
 private int LearnCenterId;
 private Date CreateDate;
 private Date LastModifyDate;
 private int UserStatus;
 public User() {
 super();
 // TODO Auto-generated constructor stub
 }
 public String getId() {
 return Id;
 }
 public void setId(String id) {
 Id = id;
 }
 public String getUserName() {
 return UserName;
 }
 public void setUserName(String userName) {
 UserName = userName;
 }
 public String getUserPwd() {
 return UserPwd;
 }
 public void setUserPwd(String userPwd) {
 UserPwd = userPwd;
 }
 public int getDeptmentId() {
 return DeptmentId;
 }
 public void setDeptmentId(int deptmentId) {
 DeptmentId = deptmentId;
 }
 public String getUserTrueName() {
 return UserTrueName;
 }
 public void setUserTrueName(String userTrueName) {
 UserTrueName = userTrueName;
 }
 public String getEmail() {
 return Email;
 }
 public void setEmail(String email) {
 Email = email;
 }
 public int getLearnCenterId() {
 return LearnCenterId;
 }
 public void setLearnCenterId(int learnCenterId) {
 LearnCenterId = learnCenterId;
 }
 public Date getCreateDate() {
 return CreateDate;
 }
 public void setCreateDate(Date createDate) {
 CreateDate = createDate;
 }
 public Date getLastModifyDate() {
 return LastModifyDate;
 }
 public void setLastModifyDate(Date lastModifyDate) {
 LastModifyDate = lastModifyDate;
 }
 public int getUserStatus() {
 return UserStatus;
 }
 public void setUserStatus(int userStatus) {
 UserStatus = userStatus;
 }
 @Override
 public String toString() {
 return "User [Id=" + Id + ", UserName=" + UserName + ", UserPwd=" + UserPwd + ", DeptmentId=" + DeptmentId
 + ", UserTrueName=" + UserTrueName + ", Email=" + Email + ", LearnCenterId=" + LearnCenterId
 + ", CreateDate=" + CreateDate + ", LastModifyDate=" + LastModifyDate + ", UserStatus=" + UserStatus
 + "]";
 }
}

7) 在main方法下做测试

package hw.com.Day1.main;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import hw.com.pojo.User;
import hw.com.ser.IUser;
import hw.com.util.SqlSessionFactoryUtil;
public class UserTest {
 public static void main(String[] args) { 
 SqlSession sqlSession=null;
 try {
 sqlSession=SqlSessionFactoryUtil.openSqlSession();
 IUser iUser=sqlSession.getMapper(IUser.class);
 List<User> users=iUser.queryUsers();
 if(users.size()>0){
 for (User user : users) {
  System.out.println(user.toString());
 }
 }
 } catch (Exception e) {
 e.printStackTrace();
 }
 }
}

到此这篇关于Mybatis 入门之MyBatis环境搭建(第一篇)的文章就介绍到这了,更多相关Mybatis 环境搭建入门内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot通过RedisTemplate执行Lua脚本的方法步骤

    SpringBoot通过RedisTemplate执行Lua脚本的方法步骤

    这篇文章主要介绍了SpringBoot通过RedisTemplate执行Lua脚本的方法步骤,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Java中Double、Float类型的NaN和Infinity的具体使用

    Java中Double、Float类型的NaN和Infinity的具体使用

    Java在处理浮点数运算时,提供了NaN和Infinity两个常量,本文主要介绍了Java中Double、Float类型的NaN和Infinity的具体使用,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Spring gateway + Oauth2实现单点登录及详细配置

    Spring gateway + Oauth2实现单点登录及详细配置

    gateway是基于 WebFlux的响应式编程框架,所以在使用securityConfig时采用的注解是@EnableWebFluxSecurity,接下来通过本文给大家介绍Spring gateway + Oauth2实现单点登录及详细配置,感兴趣的朋友一起看看吧
    2021-09-09
  • Java JDK8新增Optional工具类讲解

    Java JDK8新增Optional工具类讲解

    这篇文章主要介绍了Java JDK8新增Optional工具类讲解,本文通过老版和jdk8对比对null的处理方式,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • 详解Java的编译执行与解释执行

    详解Java的编译执行与解释执行

    这篇文章主要介绍了Java的编译执行与解释执行,对编译和解释感兴趣的同学,可以参考下
    2021-04-04
  • Spring @Transactional注解失效解决方案

    Spring @Transactional注解失效解决方案

    这篇文章主要介绍了Spring @Transactional注解失效解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Spring的@Conditional详解

    Spring的@Conditional详解

    这篇文章主要介绍了Spring的@Conditional详解,给想要注入Bean增加限制条件,只有满足限制条件才会被构造并注入到Spring的IOC容器中,通常和@Bean注解一起使用,需要的朋友可以参考下
    2024-01-01
  • 详谈StringUtils3之StringUtils.isEmpty()和StringUtils.isB的区别

    详谈StringUtils3之StringUtils.isEmpty()和StringUtils.isB的区别

    这篇文章主要介绍了详谈StringUtils3之StringUtils.isEmpty()和StringUtils.isB的区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Java面试必备八股文整理

    Java面试必备八股文整理

    这篇文章主要介绍了Java面试必备八股文整理,小伙伴们出去面试的时候会被问到很多java专业性的知识,那么八股文就是为此而出现的,需要的朋友可以参考下
    2023-03-03
  • 详解Java的线程的优先级以及死锁

    详解Java的线程的优先级以及死锁

    这篇文章主要介绍了详解Java的线程的优先级以及死锁,线程是Java编程学习中的重要知识,需要的朋友可以参考下
    2015-09-09

最新评论