MyBites学习第一讲,增删改查

一、准备开发环境

安装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

时间: 2024-11-07 10:03:39

MyBites学习第一讲,增删改查的相关文章

MyBatis学习--简单的增删改查

jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 1 Public static void main(String[] args) { 2 Connection connection = null; 3 PreparedStatement preparedStatement = null; 4 ResultSet resultSet = null; 5 6 try { 7 //加载数据库驱动 8 Class.forName

mybatis学习之普通增删改查

mybatis下载地址:https://github.com/mybatis/mybatis-3/releases 选择你要下载的版本,这里我下载的3.4.2版 项目结构: 将mybatis中的所有jar包导入还要导入链接mysql数据库的jar包. 其中db.properties,mybatis-config.xml,log4j.properties是在src下. 在mysql中新建mybatis数据库,在数据库中新建表t_customer,表结构如下: 随后向其中随便插入几条数据. Cust

MyBatis学习之简单增删改查操作、MyBatis存储过程、MyBatis分页、MyBatis一对一、MyBatis一对多

一.用到的实体类如下: Student.java [html] view plaincopy package com.company.entity; import java.io.Serializable; import java.util.Date; public class Student implements Serializable{ private static final long serialVersionUID = 1L; private int id; private Stri

Lucene和Solr学习总结(3)增删改查

使用IndexSearcher,IndexWriter对象对索引进行增删改查 直接贴代码了,方便日后查看,回顾 public class LuceneManager {   private IndexWriter getIndexWriter() throws IOException { Directory directory = FSDirectory.open(new File("D://lucene//index"));//指定索引库存放位置Directory对象 Analyze

【转载】ASP.NET MVC Web API 学习笔记---联系人增删改查

本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查.目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的.下面我们通过创建一个简单的Web API来管理联系人 说明:为了方便数据不使用真正的数据库,而是通过内存数据模拟 1.       Web API中包含的方法 Action HTTP method Relative URI GetAllContact GET /api/contact GetContact GET /api/contact /id

实训第一天--增删改查加hibernate

1.     搭建环境 安装 1)谷歌浏览器 2)jdk-7u67-windows-i586.exe 3)Tomcat7 4)NavicatforMySQL 两种方式: ftp://172.21.95.99/ 飞秋 2.     摸底测试 http://www.runoob.com/quiz/html-quiz.html http://jpk.lncc.edu.cn/jpk07/javakf/javatest/index.asp 3.     讲课过程:Hibernate->Struts->j

EF学习笔记——通用增删改查方案

http://blog.csdn.net/leftfist/article/details/25005307 我刚接触EF未久,还不知道它有什么强大之处,但看上去,EF提供了一般的增删改查功能.以往用过一些ORM方法,尽管有代码生成器,但代码量总的 来说比较多.这次采用EF,我就想,能不能尽量写出一些通用的方法,以后添加表.实体类,只需做很少的改动,就能拥有基本的增删改查功能呢? 方案如下: 1. 分为几个部分:BLL.DAL.Model.Interface.其中,EF生成的代码放在Model.

python之MySQL学习——简单的增删改查封装

1.增删改查封装类MysqlHelper.py 1 import pymysql as ps 2 3 class MysqlHelper: 4 def __init__(self, host, user, password, database, charset): 5 self.host = host 6 self.user = user 7 self.password = password 8 self.database = database 9 self.charset = charset

python学习-字典的增删改查

1 dic1 = {'name':'paoche', 2 'age':19, 3 'active':['beijing','hebei'], 4 'id':{'wangyi':'skmdod008b', 5 'sina':'skmdod00bc' 6 } 7 } 一.字典的增 方法1:直接新增键值对,若无此键则新增键值对,有此键则修改值 1 dic1['high'] = 180 #没有键值对,则追加 2 dic1['age'] = 30 #有键值,则修改 3 print(dic1) 4 "&qu