Java EE框架

1、表现层 springMVC

2、粘合剂 spring(IOC/控制反转 AOP/面向切面编程 DI/依赖注入)

3、持久层 mybatis

Dao模式创建mybatis项目过程

1、下载jar包

mybatis jar包下载地址:

链接:https://pan.baidu.com/s/1xvZauxhkAPYxWvoJuxlLFg

提取码:ia7w

复制这段内容后打开百度网盘手机App,操作更方便哦

mybatis中文手册地址:

http://www.dba.cn/book/mybatis/MYBATISZhongWenShouCe/MYBATISXMLPeiZhi.html

2、导入所需要的jar包

commons-logging-1.2.jar 用于日志处理

log4j-1.2.17.jar 日志系统,负责日志输出

mybatis-3.5.0.jar mybatis核心jar包

mysql-connector-java-5.1.46.jar MySQL数据库驱动jar包

将jar包部署到项目中

3、编写mybatis核心配置文件

创建mybatis核心配置文件mybatis-config.xml

创建Java属性配置文件jdbc.properties

创建日志属性配置文件log4j.properties

mybatis-config.xml

/p>

"mybatis-3-config.dtd" >

jdbc.properties

jdbc.DriverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf-8

jdbc.username=用户名

jdbc.password=密码

log4j.properties

log4j.rootLogger=DEBUG, Console

#Console

log4j.appender.Console=org.apache.log4j.ConsoleAppender

log4j.appender.Console.layout=org.apache.log4j.PatternLayout

log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

log4j.logger.java.sql.ResultSet=INFO

log4j.logger.org.apache=INFO

log4j.logger.java.sql.Connection=DEBUG

log4j.logger.java.sql.Statement=DEBUG

log4j.logger.java.sql.PreparedStatement=DEBUG

4、创建实体类

创建实体类并生成seter/geter方法重写toString方法。

User.java

package com.model;

public class User {

private int userId;

private String userName;

private String userPass;

private int userSex;

private int userAge;

public int getUserId() {

return userId;

}

public void setUserId(int userId) {

this.userId = userId;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getUserPass() {

return userPass;

}

public void setUserPass(String userPass) {

this.userPass = userPass;

}

public int getUserSex() {

return userSex;

}

public void setUserSex(int userSex) {

this.userSex = userSex;

}

public int getUserAge() {

return userAge;

}

public void setUserAge(int userAge) {

this.userAge = userAge;

}

@Override

public String toString() {

return "User [userId=" + userId + ", userName=" + userName + ", userPass=" + userPass + ", userSex=" + userSex

+ ", userAge=" + userAge + "]";

}

}

5、创建Dao接口

UserDao.java

package com.dao;

import com.model.User;

public interface UserDao {

public User findUserById(int Id);

//通过id查询用户信息

public void addUser(User user);

//向数据库中增加用户信息

public void deleteUser(int Id);

//删除用户信息

public void updateUser(User user);

//修改用户信息

}

userService.java

package com.service;

import com.model.User;

public interface userService {

public User findUserById(int Id);

public void addUser(User user);

public void deleteUser(int Id);

public void updateUser(User user);

}

6、创建 sql 映射文件

在dao包下创建sql映射文件 UserDao.xml。这里使用mapper动态代理所以映射文件必须和接口UserDao.java在同一个包下。

select * from userdb where userId=#{Id}

insert into userdb (userName,userPass,userSex,userAge)

values (#{userName},#{userPass},#{userSex},#{userAge})

delete from userdb where userId=#{value}

update userdb set userName=#{userName},userPass=#{userPass},userSex=#{userSex},userAge=#{userAge}

where userId=#{userId}

7、单例模式创建SqlSessionFactory工厂

MyBatisUtilsLazy.java

package com.utils;

import java.io.InputStream;

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MyBatisUtilsLazy {

public static SqlSessionFactory factory=null;

public static SqlSessionFactory getFactory() {

if (factory==null) {

InputStream in;

try {

synchronized(MyBatisUtilsLazy.class){

if (factory==null) {

in =Resources.getResourceAsStream("mybatis-config.xml");

factory = new SqlSessionFactoryBuilder().build(in);

}

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return factory;

}

}

8、编写实现类

UserServiceImpl.java

package com.service.impl;

import org.apache.ibatis.session.SqlSession;

import com.dao.UserDao;

import com.model.User;

import com.service.userService;

import com.utils.MyBatisUtilsLazy;

public class UserServiceImpl implements userService {

SqlSession session = MyBatisUtilsLazy.getFactory().openSession();

UserDao mapper = session.getMapper(UserDao.class);

@Override

public User findUserById(int Id) {

// TODO Auto-generated method stub

return mapper.findUserById(Id);

}

@Override

public void addUser(User user) {

// TODO Auto-generated method stub

try {

mapper.addUser(user);

session.commit();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

session.close();

}

}

@Override

public void deleteUser(int Id) {

// TODO Auto-generated method stub

try {

mapper.deleteUser(Id);

session.commit();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

session.close();

}

}

@Override

public void updateUser(User user) {

// TODO Auto-generated method stub

try {

mapper.updateUser(user);

session.commit();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

session.close();

}

}

}

9、编写测试类

TestAddUser.java

package com.test;

import org.junit.Test;

import com.model.User;

import com.service.impl.UserServiceImpl;

public class TestAddUser {

@Test

public void testAddUser() {

UserServiceImpl userServiceImpl = new UserServiceImpl();

User user = new User();

String userName="aaa";

String userPass="152425";

int userSex=0;

int userAge=28;

user.setUserName(userName);

user.setUserPass(userPass);

user.setUserSex(userSex);

user.setUserAge(userAge);

userServiceImpl.addUser(user);

System.out.println(user);

}

}

TestDeleteUser.java

package com.test;

import org.junit.Test;

import com.service.impl.UserServiceImpl;

public class TestDeleteUser {

@Test

public void testdeleteUser() {

UserServiceImpl userServiceImpl = new UserServiceImpl();

int Id=16;

userServiceImpl.deleteUser(Id);

}

}

TestFindUserById.java

package com.test;

import org.junit.jupiter.api.Test;

import com.model.User;

import com.service.impl.UserServiceImpl;

public class TestFindUserById {

@Test

public void testFindUserById(){

UserServiceImpl userServiceImpl = new UserServiceImpl();

int Id=17;

User user = userServiceImpl.findUserById(Id);

System.out.println(user);

}

}

TestUpdateUser.java

package com.test;

import org.junit.Test;

import com.model.User;

import com.service.impl.UserServiceImpl;

public class TestUpdateUser {

@Test

public void testupdateUser() {

UserServiceImpl userServiceImpl = new UserServiceImpl();

User user = new User();

String userName="张三";

String userPass="152425";

int userSex=0;

int userAge=25;

user.setUserId(18);

user.setUserName(userName);

user.setUserPass(userPass);

user.setUserSex(userSex);

user.setUserAge(userAge);

userServiceImpl.updateUser(user);

System.out.println(user);

}

}

mybatis mysql Dao_Dao模式创建mybatis项目过程相关推荐

  1. Maven3.2创建webapp项目过程中问题以及解决方案

    用maven组件来创建web项目,maven的好处一大堆,但是在创建项目的时候问题也很多,诸多不顺,网上找了很多资料,貌似都没能解决问题. 环境:jdk1.7.0_80,eclipse4.4,mave ...

  2. mybatis mysql 存储过程_Mysql 存储过程+Mybatis调用实现插入操作例子 | 学步园

    一. 简介:网上关于存储过程的使用有很多的例子,但大多实现的功能比较简单,由于本人对SQL语句还不是很熟悉,更别说存储过程了,所以在实现该例子的时候遇到了很多问题,现在拿给大家来分享. 二. 在本例子 ...

  3. mysql脚本模式创建索引_mysql创建脚本索引范例

    查看表中索引的方法: show index from table_name; 查看索引 索引的类型及创建例子:: 1.PRIMARY KEY (主键索引) alter table table_name ...

  4. mybatis mysql uuid_spring boot整合mybatis利用Mysql实现主键UUID的方法

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  5. github创建maven项目过程

    笔者运行环境: 1. windows 10 2. cygwin,安装openssh 3. git版本 2.11.0 前置操作,如果已经配置可以略过 1.  cygwin下执行 ssh-keygen - ...

  6. 命令窗 创建vue 项目过程

    这几条命令用来向git提交 转载于:https://www.cnblogs.com/vali/p/7493331.html

  7. MySQL数据库事务、mybatis框架、spring框架、springmvc框架、永和大王门店管理系统(框架第二部分)

    第十二章 MySQL数据库事务 一. 事务及四大特性 1.什么是事务 数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行 ...

  8. idea中创建vue项目

    idea构建vue项目 首先确保电脑上安装了node.npm.cnpm(淘宝镜像)下载依赖比较快.webpack打包工具.vue-cli构建项目结构的脚手架,相当于我们做ppt时选择样式的工具.其中的 ...

  9. IDE创建vue项目

    IDE创建vue项目 vue与vue cli的关系 vue.js是一个框架,核心是数据绑定,可以用于老的项目,引入vue.js即可使用 Vue3文档 - vuejs:vue官网 vue cli:vue ...

最新文章

  1. 预测----三个原则
  2. 卫星的性能和服务器比较,卫星通信的常用频段的详细对比
  3. TMS320F28335之GPIO原理
  4. 段描述符表(GDT+LDT)的有感
  5. java中static关键字简介
  6. 编程心得体会_生信编程语言的经验之谈
  7. 卷积:如何成为一个很厉害的神经网络
  8. C#中网络编程异步操作方法与 粘包和分包问题
  9. 精选 | 2017年11月R新包推荐
  10. HTML+CSS纯静态页面布局的理解(一)
  11. 二(高)阶多元微分方程数值解法(其一)
  12. 安装torch 时,bash install-deps错误
  13. 一根网线实现两台计算机网络共享
  14. 【EXCEL绘制地图】获取地图图标信息时遇到问题。请确保处于联机状态,然后重试
  15. 参加最牛逼的运营人年终聚会,是种什么样的体验
  16. OpenStack私有云安装配置虚拟机
  17. 电商api、地图api、视频api、音乐api等各类接口合集,或许对你有用
  18. Java中文生僻字排序
  19. 【高效开发工具系列】API工具
  20. 说说开源中国社区的愚人节

热门文章

  1. 2011年度最佳10款免费的 WordPress 主题
  2. Android开发学习笔记(二)——编译和运行原理(2)
  3. window系统JAVA开发环境的搭建
  4. 如何用纯 CSS 创作一个荧光脉冲 loader 特效
  5. tp框架中的一些疑点知识-5
  6. 导航栏与scrollerview(或scrollerview的子类)
  7. oracle 执行计划
  8. ActionScript 3.0 Step By Step系列(三):学学流程控制,编编if-else switch while for
  9. 路由器命令大全手册教程 4
  10. 一篇文章搞定各种售后问题,电商客服运营看过来