MyBatis連接數據實例
本文介紹一個使用MyBatis連接oracle數據庫的實例:
- 1、首先創建MyBatis-Config.xml文件
- 2、創建實體類+(Mapper.xml文件或接口加註解形式)
- 3、創建實體類的Mapper.xml文件
- 4、將Mapper信息註冊到Mabatis配置文件中(MyBatis-Config.xml)
- 5、創建測試類
數據庫測試表:
create table USERINFO
(
ID VARCHAR2(20),
PASSWORD VARCHAR2(10),
NAME VARCHAR2(10)
)
1、首先創建MyBatis-Config.xml文件
文件中可以:
(1)配置類型別名,使用標記typeAlias,使用一個簡單的別名來代替一個冗長的類型。
(2)配置數據庫連接信息
(3)註冊實體類的mapper
代碼塊
<?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>
<typeAliases>
<typeAlias type="domain.User" alias="User"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@192.168.100.108:1521:orcl"/>
<property name="username" value="AAA"/>
<property name="password" value="123"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="domain/UserMapper.xml"/>
</mappers>
</configuration>
2、創建實體類+(Mapper.xml文件或接口加註解形式)
代碼塊
package domain;
public class User {
private int id;
private String password;
private String name;
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 getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", password=" + password
+ "]";
}
}
3、創建實體類的Mapper.xml文件
文件中:
(1)寫入sql語句
(2)返回類型可用resultMap,添加resultMap標籤
(3)也可使用resultType
代碼塊
<?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="domain.UserMapper">
<resultMap type="domain.User" id="UserResult">
<id column="id" property="id"/>
<result column="password" property="password"/>
<result column="name" property="name"/>
</resultMap>
<select id="selectUser" parameterType="int" resultType="User">
select * from USERINFO where id = #{id}
</select>
</mapper>
4、將Mapper信息註冊到Mabatis配置文件中(MyBatis-Config.xml)
5、創建測試類
(1)獲取sqlSessionFactory對象;
(2)獲取sqlSession對象;
代碼塊
package domain;
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 App {
static SqlSessionFactory sqlSessionFactory = null;
static{
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
}
}
public static void main(String[] args) {
if (sqlSessionFactory == null) {
System.out.println("錯誤!");
return;
}
SqlSession session = sqlSessionFactory.openSession();
User user = session.selectOne("domain.UserMapper.selectUser", 1);
session.close();
System.out.println(user);
}
}
測試結果:User [id=1, name=小康, password=123456]