mybatis的基本使用

Mybatis的基本使用

  1. 什么是Mybatis?

Mybatis是一个优秀的持久层框架,它支持定制化sql,存储过程以及高级映射!mybatis避免了几乎所有的jdbc代码,手动设置参数以及获取结果集.

  1. jar的引入

  <!-- 定义mybatis依赖  -->

  <dependencies>

   <dependency>

          <groupId>org.mybatis</groupId>

          <artifactId>mybatis</artifactId>

      </dependency>

      <!-- MySQL数据库 -->

      <dependency>

          <groupId>mysql</groupId>

          <artifactId>mysql-connector-java</artifactId>

      </dependency>

      <!-- log4j日志  -->

      <dependency>

          <groupId>log4j</groupId>

          <artifactId>log4j</artifactId>

      </dependency>

  1. 项目机构

 

  1. Mybatis-config.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="resource/db.properties"></properties>

      <!-- 配置简称  -->

      <typeAliases>

           <typeAlias type="com.zy.mybatis.mapper.UserMapper" alias="userMapper" />

           <package name="com.zy.mybatis.mapper"/>

      </typeAliases>

       <!-- 配置数据源 -->

      <environments default="development">

           <environment id="development">

                 <transactionManager type="JDBC">

                 </transactionManager>

                 <dataSource type="POOLED">

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

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

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

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

                 </dataSource>

           </environment>

     </environments>

     <mappers>

         <mapper resource="com/zy/mybatis/mapper/UserMapper.xml"/>

     </mappers>

</configuration>

 

  1. UserMappermxml

 

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

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

<mapper namespace="com.zy.mybatis.mapper.UserMapper">

     <select id="getName" parameterType="int" resultType="String">

           select name from user where id=#{id}

     </select>

</mapper>

 

  1. db.propertis

 

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/zy?useUnicode=true&characterEncoding=utf-8

jdbc.username=root

jdbc.password=root

 

  1. log4j.properties

 

#针对于整个工程下面  XING属于自定义的,定义为DEBUG后,级别是最小的,比它级别高的都输出来,INFO,EREO..

#rootLogger  总工程的,

log4j.rootLogger=DEBUG,XING

#log4j.appender属于关键字,不能动,XING跟上面的一致

log4j.appender.XING=org.apache.log4j.ConsoleAppender

#布局,按照自己的想法输出

log4j.appender.XING.layout=org.apache.log4j.PatternLayout

#输出日志格式,

#d输出日志的时间

#t输出日志的所在的线程

#-5输出字符为5位,在有‘-’号在右边补齐

#p输出日志的级别,比如:debug,info等等,看看属于哪一个

#%c指的是输出的类所在的路径

#%m输出你添加的信息

#%n换行

log4j.appender.XING.layout.ConversionPattern=%d[%t]%-5p [%c] - %m%n

 

#log4j.logger是固定的,不能动

#org.apache自己定的包,例如:com.flx.estar,那个这个包下面就不会输出DEBUG级别了,只有INFO及以上

log4j.logger.org.apache = INFO

 

  1. 操作数据工具类(DBUtils)

 

public class DBUtils {

      private static SqlSessionFactory sqlSessionFactory = null;

     

      //构建SqlSessionFactory

      static {

           String config= "mybatis/mybatis-config.xml";

           try {

                 Reader reader = Resources.getResourceAsReader(config);

                 sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);

           } catch (IOException e) {

                 System.out.println("加载配置文件失败"+e);

           }

      }

     

      /**

       * 获取SqlSession

       * @return SqlSession对象

       */

      public static SqlSession getSqlSession() {

           return getSqlSessionFactory().openSession();

      }

     

      public static SqlSessionFactory getSqlSessionFactory(){

           //创建数据库连接资源

           Properties properties = new Properties();

           properties.setProperty("driver", "com.mysql.jdbc.Driver");

           properties.setProperty("url","jdbc:mysql://localhost:3306/zy" );

           properties.setProperty("username", "root");

           properties.setProperty("password", "root");

           PooledDataSourceFactory pool = new PooledDataSourceFactory();

           pool.setProperties(properties);

           DataSource ds = pool.getDataSource();

           //创建事务

           TransactionFactory transationFactory = new JdbcTransactionFactory();

           //创建Environment对象

           Environment enviroment = new Environment("development", transationFactory, ds);

          

           //创建Configuration

           Configuration configuration = new Configuration(enviroment);

           //添加mapper.xml

           configuration.addMappers("com.zy.mybatis.mapper");

           //创建sqlSessionFactory

           SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(configuration);

           return factory;

      }

     

}

 

  1. Mapper (Dao)

 

public interface UserMapper {

      String getName(int id);

}

 

  1. 测试

 

public class UserService {

     

      public static  String getName(){

           //获取SqlSession

           SqlSession session = DBUtils.getSqlSession();

           try {

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

                 String name = mapper.getName(1);

                 /*Integer id = Integer.valueOf(1);

                  String name = (String) session.selectOne("com.zy.mybatis.mapper.UserMapper.getName",id);*/

                 System.out.println(name);

                 return name;

           } finally { //注意sqlSession要关闭

                 session.close();

           }

      }

     

      public static void main(String[] args) {

           getName();

      }

}

 

经过以上几个步骤基本能实现使用mybatis来操作数据库

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值