1、准备数据库的信息,实体类
数据库信息:
DROP TABLE IF EXISTS `test`.`user`;
CREATE TABLE `test`.`user` (
`name` varchar(45) DEFAULT NULL,
`password` varchar(45) NOT NULL DEFAULT '',
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
实体Bean:
package com.rocy.domain;
public class User {
private int id;
private String name ;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
2、sqlMapConfig的配置文件--数据库信息直接配置在该文件中;
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<transactionManager type="JDBC" >
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/test"/>
<property name="JDBC.Username" value="root"/>
<property name="JDBC.Password" value="root"/>
</dataSource>
</transactionManager>
<sqlMap resource="com/rocy/maps/User.xml" />
</sqlMapConfig>
2.2、sqlMapConfig的配置文件--数据库信息直接配置在其他文件中中;
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<properties resource="com/rocy/maps/jdbc.properties" />
<transactionManager type="JDBC" >
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="{driver}"/>
<property name="JDBC.ConnectionURL" value="{url}"/>
<property name="JDBC.Username" value="{name}"/>
<property name="JDBC.Password" value="{password}"/>
</dataSource>
</transactionManager>
<sqlMap resource="com/rocy/maps/User.xml" />
</sqlMapConfig>
而在jdbc.properties中:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
name=root
password=root
3、将数据库的表信息与 实体类信息进行关联
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="User">
<typeAlias alias="user" type="com.rocy.domain.User"/> //实体类与表中的字段进行关联
<resultMap id="user" class="user">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="password" column="password"/>
</resultMap>
<select id="getUser" resultClass="user">
SELECT id,name,password
FROM user
</select>
</sqlMap>
4、加载初始化信息,获得 SqlMapClient对象:
package com.rocy.dao;
import java.io.Reader;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class MyAppSqlConfig {
private static final SqlMapClient sqlMap;
static {
try {
String resource = "com/rocy/maps/sqlMap.xml";// 加载sqlMap相关配置信息
Reader reader = Resources.getResourceAsReader (resource);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); //根据配置信息创建ibatis的 SqlMapClient 对象 。
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException ("Error initializing MyAppSqlConfig class. Cause:"+e);
}
}
public static SqlMapClient getSqlMapInstance () {
return sqlMap;
}}
5、书写相关main方法进行测试:
package com.rocy.dao;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.rocy.domain.User;
public class UserDaoImpl {
public static void main(String[] args) {
getUser();
}
@SuppressWarnings("unchecked")
public static List<User> getUser(){
SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance(); // 获得加载对象,进行sql语句的执行
List<User> list = null;
try {
list = sqlMap.queryForList("getUser");
for (int i = 0; i < list.size(); i++) {
User user = (User)list.get(i);
System.out.println(user.getName()+" "+user.getPassword());
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}
相关代码下载
更深入的了解可参看API:
数据库与实体类关联的IBatis配置与使用
745

被折叠的 条评论
为什么被折叠?



