• 第一个通过的ibatis操作mysql的实际例子


    参考地址:http://kin111.blog.51cto.com/738881/168984/

    步骤如下:
    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 you're 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" resultClass="User">
        select * from user
      </select>

    </sqlMap>

    4,建立user.xml文件中指定的class的文件
    这个文件就是一个javabean,和数据库的表的字段相对应,有set和get方法。

    文件名;User.java
    文件内容:
    package test_ibatis;

    import java.sql.Date;

    public class User {
        @Override
        public String toString() {
            // TODO Auto-generated method stub
            String str = "id = " + 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);
            }
           
        }
    }

    7,sql建表和测试数据user.sql

    drop table user;
    create table `db`.`User`(
    `id` int,
    `name` VARCHAR(50) ,
    `birthday` date,
    `money` float
     );
     
     --填充数据
     insert user(id,name,birthday,money) values (1,'zhangsha','1985-01-01',50.0);
     insert user(id,name,birthday,money) values (1,'lisi','2009-06-20',470.0);
     insert user(id,name,birthday,money) values (1,'shenqi','2009-06-20',500.0);
     insert user(id,name,birthday,money) values (1,'gaojiu','2009-06-20',1000.0);
     insert user(id,name,birthday,money) values (1,'gaojiu','2009-06-20',500.0);
    --查询结果
     select * from user;

  • 相关阅读:
    Windows下IntelliJ IDEA中调试Spark Standalone
    Java中final修饰符深入研究
    Java对象创建过程补遗
    SpringMVC项目中获取所有URL到Controller Method的映射
    简述Java中Http/Https请求监听方法
    WPF浏览器应用程序与JS的互调用(不用WebBrowser)
    通讯协议序列化解读(一) Protobuf详解教程
    Protobuf3语法详解
    ReflectASM-invoke,高效率java反射机制原理
    FFMPEG指令
  • 原文地址:https://www.cnblogs.com/xqf222/p/3306781.html
Copyright © 2020-2023  润新知