读书人

Ibatis+MySql范例 例子

发布时间: 2012-08-02 11:35:25 作者: rapoo

Ibatis+MySql实例 例子

步骤如下:
1,在eclipse中新建一个工程ibatisnew,然后把mysql和ibatis的jar包导入进去。这两个包(ibatis-2.3.4.726.jar+mysql-connector-java-5.0.8-bin.jar)可以从网上下载,直接拷贝到WEB-INF/lib目录下。

2,建立SqlMapConfig.xml文件
这个文件包含了数据库的配置,和各个数据表对应的xml的引用部分。

文件名:SqlMapConfig.xml
文件内容:
<?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>

? <!-- Configure a built-in transaction manager.? If youre using an?
?????? app server, you probably want to use its transaction manager?
?????? and a managed datasource -->
? <transactionManager type="JDBC" commitRequired="false">
??? <dataSource type="SIMPLE">
????? <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
????? <property name="JDBC.ConnectionURL" value="jdbc:mysql://127.0.0.1:3306/db"/>
????? <property name="JDBC.Username" value="root"/>
????? <property name="JDBC.Password" value=""/>
??? </dataSource>
? </transactionManager>

? <!-- List the SQL Map XML files. They can be loaded from the?
?????? classpath, as they are here (com.domain.data...) -->
? <sqlMap resource="test_ibatis/User.xml"/>

</sqlMapConfig>

3,建立SqlMapConfig.xml中引用的User.xml文件,
这个文件对应数据库中的user表,在这个文件中可以定义别名,可以写sql语句。

文件名:User.xml
文件内容:
<?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">

? <!-- Use type aliases to avoid typing the full classname every time. -->
? <typeAlias alias="User" type="test_ibatis.User"/>

? <!-- Select with no parameters using the result map for Account class. -->
? <select id="selectAllUsers" result+ this.id;
??????? str += " name = " + this.name;
??????? str += " birthday = " + this.birthday;
??????? str += " money = " + this.money;
??????? return str;
??? }

??? private int id;
??? private String name;
??? private Date birthday;
??? private float money;

??? public int getId() {
??????? return id;
??? }

??? public void setId(int id) {
??????? this.id = id;
??? }

??? public String getName() {
??????? return name;
??? }

??? public void setName(String name) {
??????? this.name = name;
??? }

??? public Date getBirthday() {
??????? return birthday;
??? }

??? public void setBirthday(Date birthday) {
??????? this.birthday = birthday;
??? }

??? public float getMoney() {
??????? return money;
??? }

??? public void setMoney(float money) {
??????? this.money = money;
??? }
}

5,建立DAO程序和实现程序
接口名:IUserDAO.java
内容:
package test_ibatis;

import java.util.List;

public interface IUserDAO {
??? public List<User> getAllUser();
}

实现类:IUserDAOImpl.java
内容:
package test_ibatis;

import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class IUserDAOImpl implements IUserDAO {

??? private static SqlMapClient client = null;
????
??? static {
??????? try {
??????????? Reader reader = Resources.getResourceAsReader("test_ibatis/SqlMapConfig.xml");
??????????? client = SqlMapClientBuilder.buildSqlMapClient(reader);
??????? } catch (IOException e) {
??????????? // TODO Auto-generated catch block
??????????? e.printStackTrace();
??????? }
??? }
????
??? public List<User> getAllUser() {
??????? // TODO Auto-generated method stub
??????? try {
??????????? return client.queryForList("selectAllUsers");
??????? } catch (SQLException e) {
??????????? // TODO Auto-generated catch block
??????????? e.printStackTrace();
??????? }
??????? return null;
??? }
}

1,实现类中要使用ibatis提供的功能,先从xml文件中读取配置,构造SqlMapClient的对象。
2,具体的实现方法,通过调用SqlMapClient提供的方法,指定xml中的id即可执行对应的sql,并返回结果。

6,测试class
文件名:UserDAO.java
文件内容:
package test_ibatis;

public class UserDAO {

??? /**
???? * @param args
???? */
??? public static void main(String[] args) {
??????? // TODO Auto-generated method stub
??????? IUserDAO dao = new IUserDAOImpl();
??????? for (User user : dao.getAllUser()) {
??????????? System.out.println(user);
??????? }
? ??

读书人网 >Mysql

热点推荐