• My Baits入门(一)mybaits环境搭建


    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);
    }
    View Code

    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();
            }
    
        }
    
    }
  • 相关阅读:
    C# Thread Lambda
    C#中Invoke的用法
    C#抽象类和抽象方法
    SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用
    改变自己的128种方法
    小技巧
    Linux学习第一章作业.zxs
    Linux学习第二、三章作业.zxs
    Linux 系统管理 04—账号管理
    Mysql中的in和find_in_set的区别?
  • 原文地址:https://www.cnblogs.com/lijianhua/p/6201158.html
Copyright © 2020-2023  润新知