首页 > 代码库 > Mybatis;

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="http://www.mamicode.com/${jdbc.username}"/>
   <property name="password" value="http://www.mamicode.com/${jdbc.password}"/>
   <property name="driver" value="http://www.mamicode.com/${jdbc.driver}"/>
   <property name="url" value="http://www.mamicode.com/${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>

 

 

Mybatis;