1、mybatis 通过mybatis-generator-core-1.3.2 代码生成:

工具下载地址:

https://code.google.com/p/mybatis/

解压工具包 mybatis-generator-core-1.3.2 找到lib目录 添加 配置文件,根据文档说明执行代码生成:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <!--
使用说明: cmd
cd 安装包存放路径
eg:
cd C:\MybatisCodeBuildTool\lib 执行:
java -jar mybatis-generator-core-1.3.2.jar -configfile 配置文件.xml -overwrite --> <generatorConfiguration>
<!-- 陪在数据库连接驱动 -->
<classPathEntry location="mysql-connector-java-5.1.22-bin.jar" /> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator>
<property name="suppressDate" value="true" />
</commentGenerator> <jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost/mybatistest" userId="root" password="wangkun">
</jdbcConnection> <javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver> <!-- model 实体代码生成:
targetPackage:命名空间
targetProject:生成文件目录(需要存在目录) -->
<javaModelGenerator targetPackage="com.rhythmk.model"
targetProject="javacodedir">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator> <sqlMapGenerator targetPackage="com.rhythmk.dao"
targetProject="javacodedir">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator> <javaClientGenerator type="XMLMAPPER"
targetPackage="com.rhythmk.dao" targetProject="javacodedir">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!---
table 代码配置:
tableName: 数据库表名
domainObjectName: 映射对象名 通过下面配置选择生成操作方法,默认为true
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"
-->
<table tableName="MyUser" domainObjectName="MyUser" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" >
<!-- ignoreColumn : 排除属性 --->
<ignoreColumn column="Age" /> </table> </context>
</generatorConfiguration>

2、mybatis 增改查:

项目结构:

config.properties:

db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/mybatistest?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
db.user=root
db.pass=wangkun

  

SqlMapConfig.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>
<!-- 引入配置文件 -->
<properties resource="config.properties"></properties> <environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${db.driver}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.user}" />
<property name="password" value="${db.pass}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/rhythmk/dao/MyUserMapper.xml"/>
</mappers>
</configuration>

  MyUserMapper.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="com.rhythmk.dao.MyUserMapper">
<resultMap id="BaseResultMap" type="com.rhythmk.model.MyUser">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<id column="ID" jdbcType="TINYINT" property="id" />
<result column="UserName" jdbcType="VARCHAR" property="username" />
<result column="CreateTime" jdbcType="TIMESTAMP" property="createtime" />
</resultMap>
<sql id="Base_Column_List">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
-->
ID, UserName, CreateTime
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Byte" resultMap="BaseResultMap">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
-->
select
<include refid="Base_Column_List" />
from myuser
where ID = #{id,jdbcType=TINYINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Byte">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
-->
delete from myuser
where ID = #{id,jdbcType=TINYINT}
</delete>
<insert id="insert" parameterType="com.rhythmk.model.MyUser">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
-->
insert into myuser (ID, UserName, CreateTime
)
values (#{id,jdbcType=TINYINT}, #{username,jdbcType=VARCHAR}, #{createtime,jdbcType=TIMESTAMP}
)
</insert>
<insert id="insertSelective" parameterType="com.rhythmk.model.MyUser">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
-->
insert into myuser
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
ID,
</if>
<if test="username != null">
UserName,
</if>
<if test="createtime != null">
CreateTime,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=TINYINT},
</if>
<if test="username != null">
#{username,jdbcType=VARCHAR},
</if>
<if test="createtime != null">
#{createtime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.rhythmk.model.MyUser">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update myuser
<set>
<if test="username != null">
UserName = #{username,jdbcType=VARCHAR},
</if>
<if test="createtime != null">
CreateTime = #{createtime,jdbcType=TIMESTAMP},
</if>
</set>
where ID = #{id,jdbcType=TINYINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.rhythmk.model.MyUser">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update myuser
set UserName = #{username,jdbcType=VARCHAR},
CreateTime = #{createtime,jdbcType=TIMESTAMP}
where ID = #{id,jdbcType=TINYINT}
</update> <!-- 设置 参数类型为Map 则可以通过 Map<String,Object>
进行参数化 传值,
同时 parameterType 也可以设置为具体的 JaveBean类型 如上面方法进行查询传值
--> <select id="selectUser" parameterType="Map" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from myuser
where ID = #{id,jdbcType=TINYINT} And UserName=#{UserName}
</select> </mapper>

测试代码:

private static SqlSessionFactory sqlSessionFactory = null;
static{
try {
InputStream is= org.apache.ibatis.io.Resources.getResourceAsStream("SqlMapConfig.xml");
sqlSessionFactory=new SqlSessionFactoryBuilder().build(is); } catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} } /**
* 添加数据
*/ public static void testInsert()
{
SqlSession session=sqlSessionFactory.openSession();
MyUser user=new MyUser();
user.setCreatetime(new Date());
user.setUsername("RHYTHMK");
session.insert("insert",user);
session.commit(); } /**
* 查询数据
*/
public static void testSelectOne()
{
SqlSession session=sqlSessionFactory.openSession();
try {
MyUser user=session.selectOne("selectByPrimaryKey",1);
System.out.printf(user.getUsername());
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
session.close();
}
} /**
* 修改数据
*/
public static void testUpdate()
{
SqlSession session=sqlSessionFactory.openSession();
MyUser user=new MyUser();
user.setCreatetime(new Date());
user.setUsername("RHYTHMK_update");
user.setId(Byte.parseByte("1"));
session.insert("updateByPrimaryKeySelective",user);
session.commit();
} public static void testSelectByMap()
{
Map<String,Object> map=new HashMap<String, Object>();
map.put("id", "2");
map.put("UserName", "wangk2");
SqlSession session=sqlSessionFactory.openSession();
MyUser user=(MyUser)session.selectOne("selectUser", map) ;
System.out.println("testSelect:"+user.getId().toString()); }

  

相关代码:

http://pan.baidu.com/s/1raUGs

Rhythmk 一步一步学 JAVA (15) mybatis 入门学习-1的更多相关文章

  1. 没有基础的初学者学java怎样快速入门?超全的学习路线图

    现在地球人都知道互联网行业工资高,上万都是小case,不值一提.可是对于大部分人来说,工资七八千都算很难了.那我也想学java,当程序员,赚大钱.可是作为一个初学者,怎样才可以快速入门呢?早点入门就可 ...

  2. 教妹学Java:Spring 入门篇

    你好呀,我是沉默王二,一个和黄家驹一样身高,刘德华一样颜值的程序员(管你信不信呢).从两位偶像的年纪上,你就可以断定我的码龄至少在 10 年以上,但实话实说,我一直坚信自己只有 18 岁,因为我有一颗 ...

  3. Java—System类入门学习

    第三阶段 JAVA常见对象的学习 System类 System类包含一些有用的字段和方法,他不能被实例化 //用于垃圾回收 public static void gc() //终止正在运行的java虚 ...

  4. Rhythmk 一步一步学 JAVA (18): Enum枚举学习

    枚举定义: public enum SizeEnum { SMALL, BIG, BIGEST }; public enum SizeStringEnum { SMALL("小") ...

  5. PowerDesigner 15.2入门学习 二

    PowerDesigner中如何生成主键和自增列 1.SQL Server版本: 第一步,首先要建立与数据库的连接,方法较多,这里举个例子: http://www.cnblogs.com/netsql ...

  6. Java超简明入门学习笔记(一)

    Java编程思想第4版学习笔记(一) 第二章 一切都是对象(Hello World)          这个笔记本主要记录了我在学习Java编程思想(第4版,中文版)的过程中遇到的重难点及其分析.主要 ...

  7. Java超简明入门学习笔记(四)

    Java编程思想第4版学习笔记(四) 第六章 访问权限控制         访问权限控制是面向对象编程中的重要概念,它划分了类设计者和类使用者的界限.通过设置权限,它一方面告诉类设计者,哪个部分的修改 ...

  8. Java超简明入门学习笔记(三)

    Java编程思想第4版学习笔记(三) 第五章 初始化与清理(构造器和垃圾回收机制)         Java有和C++类似的构造函数来为新创建的对象执行初始化及完成一些特殊的操作,有的类数据成员可能会 ...

  9. 【Java】SpringBoot入门学习及基本使用

    SpringBoot入门及基本使用 SpringBoot的介绍我就不多说了,核心的就是"约定大于配置",接下来直接上干货吧! 本文的实例: github-LPCloud,欢迎sta ...

随机推荐

  1. 【Git】Git的正确学习方式

    Git学习笔记 学习资料 git init git status git log 可以查看提交历史 git reset --hard commit_id git reflog查看命令历史 git ad ...

  2. 在exsi6.0中安装debian8.1 64位 无界面服务器版.

    之前介绍了exsi6.0的安装. 现在开始应用. 上一篇介绍的exsi6.0是安装在U盘上的系统.U盘为群联芯片,芯片型号为2251-50/30.容量为2G.发现容量足够用.比较节省成本. 现在开始为 ...

  3. BZOJ1345 Baltic2007 序列问题Sequence 【思维题】*

    BZOJ1345 Baltic2007 序列问题Sequence Description 对于一个给定的序列a1,…,an,我们对它进行一个操作reduce(i),该操作将数列中的元素ai和ai+1用 ...

  4. 如何向map和reduce脚本传递参数,加载文件和目录

    本文主要讲解三个问题:       1 使用Java编写MapReduce程序时,如何向map.reduce函数传递参数.       2 使用Streaming编写MapReduce程序(C/C++ ...

  5. window10 下 php7.0 添加Sqlserver扩展

    第一步.7.0.x 7.0.x的扩展下载地址: Microsoft Drivers for PHP for SQL Server  https://www.microsoft.com/en-us/do ...

  6. 《DSP using MATLAB》示例Example7.6 Type-3 Linear-Phase FIR

    代码: h = [-4, 1, -1, -2, 5, 0, -5, 2, 1, -1, 4]; M = length(h); n = 0:M-1; [Hr, w, c, L] = Hr_Type3(h ...

  7. scrapy模拟浏览器爬取验证码页面

    使用selenium模块爬取验证码页面,selenium模块需要另外安装这里不讲环境的配置,我有一篇博客有专门讲ubuntn下安装和配置模拟浏览器的开发 spider的代码 # -*- coding: ...

  8. VC++ 获取鼠标状态,获取鼠标弹起消息

    LRESULT CALLBACK TestProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case W ...

  9. 百度地图API秘钥生成步骤

    百度API

  10. springboot: 集成freemark模板引擎

    1.freemark简介(摘自:http://blog.csdn.net/liaomin416100569/article/details/78349072) 在互联网软件内容网站中 一般首页的访问量 ...