创建基于session的util类,在线程中共享SqlSession

package cn.smartapp.blogs.pojo;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set; /**
* User实体类
* @author smart
* 对应blog_user表
*/
public class User implements Serializable {
//对应表的id字段
private int id;
//对应表的user_name字段
private String userName;
//对应表的user_pass字段
private String password;
//对应表的nick_name字段
private String nickName; public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getNickName() {
return nickName;
} public void setNickName(String nickName) {
this.nickName = nickName;
}
}

创建blog_user表对应的实体类User

package cn.smartapp.blogs.pojo;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set; /**
* User实体类
* @author smart
* 对应blog_user表
*/
public class User implements Serializable {
//对应表的id字段
private int id;
//对应表的user_name字段
private String userName;
//对应表的user_pass字段
private String password;
//对应表的nick_name字段
private String nickName; public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getNickName() {
return nickName;
} public void setNickName(String nickName) {
this.nickName = nickName;
}
}

创建blog_category表对应的实体类Category

package cn.smartapp.blogs.pojo;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set; /**
* Category实体类
* @author smart
* 与blog_category表对应的实体类
*/
public class Category implements Serializable {
//对应表中的主键id
private int id;
//对应表中的cate_name字段
private String cateName; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getCateName() {
return cateName;
} public void setCateName(String cateName) {
this.cateName = cateName;
}
}

创建blog_article表对应的实体类Article

package cn.smartapp.blogs.pojo;

import java.io.Serializable;
import java.util.Date;
/**
* Article实体类
* @author smart
* 对应blog_article表的实体类
*/
public class Article implements Serializable {
//对应表中的主键id
private int id;
//对应表中的art_title字段
private String title;
//对应表中的art_content字段
private String content;
//对就表中的art_pubtime字段
private Date pubTime;
//对应表中的pub_user_id字段
private int userId;
//对应表中的cate_id字段
private int cateId; public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getPubTime() {
return pubTime;
}
public void setPubTime(Date pubTime) {
this.pubTime = pubTime;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public int getCateId() {
return cateId;
}
public void setCateId(int cateId) {
this.cateId = cateId;
}
}

在核心配置文件中为实体类别名

<?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>
  <!-- 配置文件新增的部分,为实体类别名 --->
<typeAliases>
<typeAlias alias="User" type="cn.smartapp.blogs.pojo.User" />
<typeAlias alias="Category" type="cn.smartapp.blogs.pojo.Category" />
<typeAlias alias="Article" type="cn.smartapp.blogs.pojo.Article" />
</typeAliases>
<!-- ========================== --> <environments default="news_res">
<environment id="news_res">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/blogs_db?characterEncoding=utf-8" />
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
</configuration>

blog_user表与blog_article表存在主从关系,所以为User类与Article类建立一对多关联关系

package cn.smartapp.blogs.pojo;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set; /**
* User实体类
* @author smart
* 对应blog_user表
*/
public class User implements Serializable {
//对应表的id字段
private int id;
//对应表的user_name字段
private String userName;
//对应表的user_pass字段
private String password;
//对应表的nick_name字段
private String nickName;

  //此处是新增的代码
//为User与Article建立一对多关联
private Set<Article> articles = new HashSet<Article>(); public Set<Article> getArticles() {
return articles;
}
public void setArticles(Set<Article> articles) {
this.articles = articles;
}
//=================================
  public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getNickName() {
return nickName;
} public void setNickName(String nickName) {
this.nickName = nickName;
}
}

blog_category表与blog_article表存在主从关系,所以为Category类与Article类建立一对多关联关系

package cn.smartapp.blogs.pojo;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set; /**
* Category实体类
* @author smart
* 与blog_category表对应的实体类
*/
public class Category implements Serializable {
//对应表中的主键id
private int id;
//对应表中的cate_name字段
private String cateName; //此处为新增代码
//为Category与Article类建立一对多关联
private Set<Article> articles = new HashSet<Article>(); public Set<Article> getArticles() {
return articles;
}
//========================== public void setArticles(Set<Article> articles) {
this.articles = articles;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getCateName() {
return cateName;
} public void setCateName(String cateName) {
this.cateName = cateName;
}
}

Article类与User类和Category类实现多对一关联

package cn.smartapp.blogs.pojo;

import java.io.Serializable;
import java.util.Date;
/**
* Article实体类
* @author smart
* 对应blog_article表的实体类
*/
public class Article implements Serializable {
//对应表中的主键id
private int id;
//对应表中的art_title字段
private String title;
//对应表中的art_content字段
private String content;
//对就表中的art_pubtime字段
private Date pubTime;
//对应表中的pub_user_id字段
private int userId;
//对应表中的cate_id字段
private int cateId; //此处为新增代码
//实现多对一关联关系
private User user;
private Category category; public User getUser() {
this.setUserId(user.getId()); //外键关联
return user;
}
public void setUser(User user) {
this.user = user;
}
public Category getCategory() {
this.setCateId(category.getId()); //外键关联
return category;
}
public void setCategory(Category category) {
this.category = category;
}
//==================================== public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getPubTime() {
return pubTime;
}
public void setPubTime(Date pubTime) {
this.pubTime = pubTime;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public int getCateId() {
return cateId;
}
public void setCateId(int cateId) {
this.cateId = cateId;
}
}

Mybatis 学习-2的更多相关文章

  1. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...

  2. MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(八)--Mybatis3.x与Spring4.x整合 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: m ...

  3. MyBatis学习总结(七)——Mybatis缓存(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...

  4. (原创)mybatis学习二,spring和mybatis的融合

    mybatis学习一夯实基础 上文介绍了mybatis的相关知识,这一节主要来介绍mybaits和spring的融合 一,环境搭建 1,jar包下载,下载路径为jar包 2,将包导入到java工程中 ...

  5. (原创)mybatis学习一,夯实基础

    一,what?(是什么) MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可 ...

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

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...

  7. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...

  8. 【Todo】Mybatis学习-偏理论

    之前写过好几篇Mybatis相关的文章: http://www.cnblogs.com/charlesblc/p/5906431.html  <SSM(SpringMVC+Spring+Myba ...

  9. MyBatis学习系列三——结合Spring

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring MyBatis在项目中应用一般都要结合Spring,这一章主要把MyBat ...

  10. MyBatis学习系列二——增删改查

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...

随机推荐

  1. 逐个后移,匹配符合要求的选项,ie7有bug

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  2. mysql中整数类型后面的数字,是不是指定这个字段的长度?比如int(11),11代表11个字节吗?

    原文地址:    http://www.cnblogs.com/stringzero/p/5707467.html 原先对mysql不太理解,但也没有报错.但理解的不够深入.这次补上. 原来以为int ...

  3. 协方差Covariance的表述推导

    今天想了一下关于概率论的一维数据期望.方差以及高维数据的矩阵表示,突然想到为什么在一维中 方差的表示为:V(x) = E((x-E(x))2) 而到了高维,这样的表述就成了协方差呢?V(X) = E( ...

  4. celery入门

    认识 这里有几个概念,task.worker.broker.顾名思义,task 就是老板交给你的各种任务,worker 就是你手下干活的人员. 那什么是 Broker 呢? 老板给你下发任务时,你需要 ...

  5. [Lonlife1031]Bob and Alice are eating food(递推,矩阵快速幂)

    题目链接:http://www.ifrog.cc/acm/problem/1031 题意:6个水果中挑出n个,使得其中2个水果个数必须是偶数,问有多少种选择方法. 设中0代表偶数,1代表奇数.分别代表 ...

  6. java正则API简单解析

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 1.简介: java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. ...

  7. Spark Streaming官方文档学习--上

    官方文档地址:http://spark.apache.org/docs/latest/streaming-programming-guide.html Spark Streaming是spark ap ...

  8. C# int.Parse()与int.TryParse()

    int i = -1;bool b = int.TryParse(null, out i);执行完毕后,b等于false,i等于0,而不是等于-1,切记. int i = -1;bool b = in ...

  9. SQL中char、varchar、nvarchar的区别(zhuan)

    char    char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符.   nvarcha ...

  10. Broadcast Receviewer

    使用Braodcast Receiver 一.新建一个空的工程,命名为LearnBroadcastReceiver 二.为主界面添加一个按钮 三.新建一个broadcast receiver,命名为M ...