1. 程式人生 > >MyBites學習第一講,增刪改查

MyBites學習第一講,增刪改查

aid str org res pat nis href input ctype

一、準備開發環境

安裝jdk,下載一個eclipse,這裏就不多講啦

二、創建一個java項目,將下面的包導入到lib中並編譯

技術分享

具體怎麽講包導入並編譯我這裏稍微講一下:選中項目右鍵——Build Path——Configure Build Path——Libraries

先添加jdk:

技術分享

技術分享

技術分享

點擊Finish 就講jdk加到環境中了,然後添加jar包:

技術分享

技術分享

OK,到了這步運行環境已經搭建好了,那麽開始操作吧。

三、創建sqlMapConfig.xml

首先你要在src下創建一個sqlMapConfig.xml文件,有人問了為啥叫這名?能改不?我可以告訴你這就是一種約定,就和hibernate的hibernate.cfg.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>
<!-- <context:property-placeholder location="classpath:*.properties"/> -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED"><!-- 指定類型為連接池  -->
            <!--數據源信息  -->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://192.168.1.68:3306/test?characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="cn/core/domain/User.xml" />
    </mappers>
</configuration>

四、數據庫創建一張表(user,這裏隨便我演示所以叫user)

隨便創建了4個字段:

技術分享

四、創建User(實體類)對象

技術分享
package cn.core.domain;

import java.io.Serializable;
import java.sql.Timestamp;

/**   
 * 用戶實體類.
 *
 * @ClassName: User
 * @author [email protected]
 * @date: 2016年4月29日 上午8:22:09 
 * @version V1.0
 */
public class User implements Serializable {
    
//主鍵ID private String user_id; //用戶的名字 private String uname; //地址 private String address; //年齡 private int age; public String getUser_id() { return user_id; } public void setUser_id(String user_id) { this.user_id = user_id; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User [user_id=" + user_id + ", uname=" + uname + ", address=" + address + ", age=" + age + "]"; } }
User

五、創建User.xml對象

註意這裏創建User.xml就是在sqlMapConfig.xml中引入的節點,回顧一下:

    <mappers>
        <mapper resource="cn/core/domain/User.xml" />
    </mappers>

具體的User.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="cn.core.domain.User">
    <!-- 查詢單個對象 -->
    <select id="selectUserById" parameterType="string" resultType="cn.core.domain.User">
        select * from user where user_id = #{user_id}
    </select>
    <!-- 添加 -->
    <insert id="insertUser" parameterType="cn.core.domain.User" >
        insert into user values(#{user_id},#{uname},#{address},#{age})
    </insert>
    <!-- 修改  -->
    <update id="updateUser" parameterType="cn.core.domain.User">
        update user set uname=#{uname},address=#{address},age=#{age} where user_id=#{user_id}
    </update>
    
    <!-- 刪除 -->
    <delete id="deleteUser" parameterType="string" >
        delete from user where user_id=#{user}
    </delete>
    
</mapper>

六、測試文件MyBitesTest.java文件

package cn.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;

import cn.core.domain.User;

public class MyBitesTest {

    SqlSessionFactory sf ;
    
    @Before
    public void initSessionFactory() throws Exception{
        String resource = "sqlMapConfig.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //獲得會話工廠
         sf = new SqlSessionFactoryBuilder().build(inputStream);
    }
    
    @Test
    public void selectUserById() throws IOException{
        SqlSession session=sf.openSession();
        User user=(User)session.selectOne("cn.core.domain.User.selectUserById", "1");
        System.out.println(user);
    }
    
    @Test
    public void insertByUser() throws IOException{
        SqlSession session=sf.openSession();
        User user=new User();
        user.setUser_id(UUID.randomUUID().toString());
        user.setAge(33);
        user.setAddress("海澱區");
        user.setUname("李四");
        int num=session.insert("cn.core.domain.User.insertUser", user);
        System.out.println("受影響的行數:"+num);
        session.commit();
    }
    
    @Test
    public void updateUserById(){
        SqlSession session=sf.openSession();
        User user=new User();
        user.setUser_id("1");
        user.setAge(12);
        user.setUname("王五");
        user.setAddress("西城區");
        int num=session.update("cn.core.domain.User.updateUser", user);
        System.out.println("受影響的行數:"+num);
        session.commit();
    }
    
    @Test
    public void deleteUserById(){
        SqlSession session=sf.openSession();
        int num=session.delete("cn.core.domain.User.deleteUser", "1687bd8c-ee4a-4bc2-8c99-246cd08295cb");
        System.out.println("受影響的行數:"+num);
        session.commit();
    }
    
    
    
}

註意:session對象下selectOne、insert、update、delete 等等 這些方法如果是2個參數的,第一個參數是你配置的xml中對應的命名空間+id名字,例如:User.xml的命名空間是cn.core.domain.User,對應的方法找對應的id,例如查詢操作 這樣表示:cn.core.domain.User.selectUserById

完整項目下載地址:http://pan.baidu.com/s/1qYrz7Ne

MyBites學習第一講,增刪改查