新建MyBatis项目并详细配置

1、创建Java web project

 

2、导入包:log4j、mybatis、mysql-connector

 

3、在src目录下配置文件

(1)jdbc.properties

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/db_test

username=root

password=hanxue

 

(2)log4j.properties

### 设置Logger输出级别和输出目的地 ###

log4j.rootLogger=debug,stdout

### 把日志信息输出到控制台 ###

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout


### 把日志信息输出到文件:jbit.log ###
#log4j.appender.logfile=org.apache.log4j.FileAppender
#log4j.appender.logfile.File=jbit.log
#log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
#log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n


###显示SQL语句部分
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

 

(3)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="jdbc.properties"></properties>

    <!-- 引入model的别名 -->

    <typeAliases>

        <!-- <typeAlias alias="User" type="com.soleil.model.User"/> -->

        <package name="com.soleil.model"/>

    </typeAliases>

    <environments default="development">

        <environment id="development">

        <!-- 事物管理 -->

            <transactionManager type="JDBC"/>

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

        <package name="com.soleil.mapper"/>

    </mappers>

</configuration>

 

4、数据库准备

mysql> desc user_inf;

+----------+-------------+------+-----+---------+-------+

| Field    | Type        | Null | Key | Default | Extra |

+----------+-------------+------+-----+---------+-------+

| id       | int(11)     | NO   | PRI | NULL    |       |

| password | varchar(15) | NO   |     | NULL    |       |

| username | varchar(15) | NO   |     | NULL    |       |

+----------+-------------+------+-----+---------+-------+

3 rows in set (0.01 sec)

 

mysql> select * from user_inf;

+----+----------+----------+

| id | password | username |

+----+----------+----------+

|  1 | manager  | summer   |

|  2 | admin    | spring   |

+----+----------+----------+

2 rows in set (0.00 sec)

 

5、新建com.soleil.model包并新建model类User

package com.soleil.model;

 

public class User {

private int id;

private String passWord;

private String userName;

 

public User() {

 

}

public User(int id, String passWord, String userName) {

super();

this.id = id;

this.passWord = passWord;

this.userName = userName;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getPassWord() {

return passWord;

}

public void setPassWord(String passWord) {

this.passWord = passWord;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

@Override

public String toString() {

return "User [id=" + id + ", passWord=" + passWord + ", userName=" + userName + "]";

}

}

6、新建com.soleil.mapper包并新建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="com.soleil.mapper.UserMapper">

  <select id="selectUser" parameterType="int" resultType="User">

    select * from user_inf where id = #{id}

  </select>

  </mapper>

 

7、在com.soleil.mapper包中新建Usermapper Interface

package com.soleil.mapper;

 

import com.soleil.model.User;

 

public interface UserMapper {

public User selectUser(int id);

}

 

8、com.soleil.util包并新建MyBatisUtil类

package com.soleil.util;

 

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

 

private static SqlSessionFactory sqlSessionFactory = null;

// 单例

static {

InputStream inputStream;

try {

inputStream = Resources.getResourceAsStream("mybatis-config.xml");

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

} catch (IOException e) {

e.printStackTrace();

}

}

 

public MyBatisUtil() {}

 

/**

* 得到sqlSessionFactory的实例

* @return

*/

public static SqlSession getSqlSession() {

return sqlSessionFactory.openSession();

}

}

 

9、com.soleil.Dao包并新建UserDao

package com.soleil.dao;

import org.apache.ibatis.session.SqlSession;

import com.soleil.mapper.UserMapper;
import com.soleil.model.User;
import com.soleil.util.MyBatisUtil;

public class UserDao implements UserMapper {

    @Override
    public User selectUser(int id) {
        User user = null;
        SqlSession session = MyBatisUtil.getSqlSession();
        try {
          UserMapper mapper = session.getMapper(UserMapper.class);
          user = mapper.selectUser(id);
        } finally {
          session.close();
        }
        return user;
    }

}
 

10、JUnit测试

package com.soleil.mapper;

 

import org.junit.Test;

 

import com.soleil.dao.UserDao;

import com.soleil.model.User;

 

public class UserMapperTest {

private UserDao userDao;

 

@Test

public void testSelectUser() {

userDao = new UserDao();

User user = userDao.selectUser(1);

System.out.println(user.toString());

}

}

 

11、测试结果

在控制台打印

User [id=1, passWord=manager, userName=summer]

最终项目结构如下:

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务