zoukankan      html  css  js  c++  java
  • Mybatis;

    最近刚刚接受一些框架知识,Mybatis,xml的各种配置,以及各种各样的不知道是什么的文件,向我铺天盖地的砸了过来,说实在的,真是有点让人措手不及。

    所以,这些代码希望能对初识Mybatis的小菜鸟们有所帮助。

    首先是xml的配置文件:(这是新建的一个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="conf/jdbc_oracle.properties"></properties>
     
     <!-- 别名 -->
     <typeAliases>
     <!-- <typeAlias type="model.User" alias="User"/>实体类少的情况下可用 -->
     <package name="model"></package>
     
     </typeAliases>
     <!-- 开发环境 -->
     <environments default="development">
      <!-- 子属性 -->
      <environment id="development">
      <!-- 事务管理器
      两种,一种是JDBC
      另一种是MANAGER。。(托管)
      welogic,jboss...
      tomcat没有第二种
      -->
      <transactionManager type="JDBC"></transactionManager>
      
      <!--
      配置数据源
      UNPOOLED   非连接池
      POOLED    连接池
      JNDI   应用服务器
       -->
      
       <dataSource type="POOLED">
       <!-- 使用属性文件里面的值,或者是直接在配置文件里边定义 -->
       <property name="username" value="${jdbc.username}"/>
       <property name="password" value="${jdbc.password}"/>
       <property name="driver" value="${jdbc.driver}"/>
       <property name="url" value="${jdbc.url}"/>
      
       </dataSource>
      </environment>
     </environments>
     
     <!-- 添加映射文件 -->
     <mappers>
      <mapper resource="aaa/UserMapper.xml"/>
     </mappers>
     
    </configuration>

    数据库的链接:(新建一个File,然后加一个后缀    .properties   这种File文件,你将后缀写成什么样子,它就会是一个什么样的文件)

    jdbc.username=test
    jdbc.password=199715
    jdbc.driver=oracle.jdbc.OracleDriver
    jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl

    实例化一个类:(就是你的数据库里表的字段名)

    package model;

    public class Users {

      public Integer id;  

    public String username;   

    public String password;        

     public Users() {  

      super();       }   

    public Users(Integer id,String username,String password){   

     super();    

    this.id=id;  

      this.username=username;    

    this.password=password;   }  

     public Users(String username,String password){  

      super();   

     this.username=username;   

     this.password=password;   }      

    public Integer getId() {    

    return id;   }  

     public void setId(Integer id) {    

    this.id = id;   }  

     public String getUsername() {   

     return username;   }   

    public void setUsername(String username) {   

     this.username = username;   }  

     public String getPassword() {  

      return password;   }  

     public void setPassword(String password) {  

      this.password = password;   }  

     @Override

      public String toString() {    return "User [id=" + id + ", username=" + username + ", password=" + password + "]";   }         }

    重点问题:在上一篇博客中强调的问题,这个实例化的类,一定不要定义成静态的

    获取链接:

    import java.io.IOException;

    import java.io.InputStream;

    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 MyBatisutill {  

    private static SqlSessionFactory SqlSessionFactory;

     private static SqlSession sqlSession;      

    public static SqlSessionFactory getSqlSessionFactory(){

      String path = "conf/NewFile.xml";

      InputStream in = null;  

     try {    in = Resources.getResourceAsStream(path);

      } catch (IOException e) {    

    e.printStackTrace();   }  

     SqlSessionFactory = new SqlSessionFactoryBuilder().build(in);     

     return SqlSessionFactory;  }

       public static SqlSession getSqlSession(){  

     if(sqlSession == null){   

     sqlSession = getSqlSessionFactory().openSession();  

     }      

    return sqlSession;  }  

     public static void destory(){  

     sqlSession.commit();

      sqlSession.close();  }  

    public static void main(String[] args) {

      System.out.println(getSqlSession());  } }

    测试:(新建一个junitTestTest)

    import static org.junit.Assert.*;

    import java.util.List;

    import org.apache.ibatis.session.SqlSession; import org.junit.After; import org.junit.Before; import org.junit.Test;

    import Utill.MyBatisutill; import aaa.User; import model.Users;

    public class junitTest {

     private SqlSession ss;  private User um;  

     @Test//注解  

    public void test() {  

     /*List<Object> list = ss.selectList("aaa.User.getAllUser");   

    System.out.println(list);*/  

     /*Users users = new Users("huanghuan","111");  

     int a = ss.insert("aaa.User.addUser",users);  

     System.out.println(a);*/  

     /*int a = um.delUser(1);  

     System.out.println(a);*/   

    Users users = new Users("荔枝烂了","555");   

    int a = ss.update("aaa.User.updateUser",users);  }  

     @Before

     public void setUp() throws Exception {  

     ss = MyBatisutill.getSqlSession();

      um = ss.getMapper(User.class);  

     System.out.println(ss);  }

     @After  

    public void tearDown() throws Exception {   

    MyBatisutill.destory();  }

     }

    写一个方法类,调用里边的方法;

    import java.util.List;

    public interface User {  

    public List<User> getAllUsers();  

    public int addUser();

     public int delUser(int id);

     public int updateUser();

    }

    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="aaa.User">
     <select id="getAllUser" resultType="Users">
      select * from z_user
     </select> 
     <insert id="addUser" parameterType="Users">
      insert into z_user z values(test_sq.nextval,#{username},#{password})
     </insert>
     <delete id="delUser" parameterType="int">
      delete z_user z where z.id=#{id}
     </delete>
     <update id="updateUser" parameterType="Users">
      update z_user z set z.username=#{username},z.password=#{password} where z.id=2
     </update>
    </mapper>

     
  • 相关阅读:
    动态规划
    平衡二叉树与自平衡二叉树(红黑树)的区别
    算法可视化网站
    字符串查找算法总结(暴力匹配、KMP 算法、Boyer-Moore 算法和 Sunday 算法)
    既然红黑树那么好,为啥hashmap不直接采用红黑树,而是当大于8个的时候才转换红黑树?
    平衡二叉树(AVL树)
    经典的hash函数
    正则表达式之基本原理
    正则表达式只有主语和状语
    模式匹配算法:扫描+特征比较
  • 原文地址:https://www.cnblogs.com/hljj/p/7237970.html
Copyright © 2011-2022 走看看