Mybatis实现数据的增删改查(CRUD)(精) Mybatis实现数据的增删改查(CRUD) 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 MyBatis下载:https://https://www.doczj.com/doc/6211966579.html,/mybatis/mybatis-3/releases Mybatis实例 对一个User表的CRUD操作: User表: -- ---------------------------- -- Table structure for `user` -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(11NOT NULL AUTO_INCREMENT, `userName` varchar(50 DEFAULT NULL, `userAge` int(11 DEFAULT NULL, `userAddress` varchar(200 DEFAULT NULL, PRIMARY KEY (`id` ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of user -- ---------------------------- INSERT INTO `user` VALUES ('1', 'summer', '30', 'shanghai'; INSERT INTO `user` VALUES ('2', 'test2', '22', 'suzhou'; INSERT INTO `user` VALUES ('3', 'test1', '29', 'some place'; INSERT INTO `user` VALUES ('4', 'lu', '28', 'some place'; INSERT INTO `user` VALUES ('5', 'xiaoxun', '27', 'nanjing';
Model1实现增删改查的小例子 Model1例子 作者:深蓝王子 SqlBean.java package com.jq92.bean; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class SqlBean { Connection con; PreparedStatement pre; ResultSet rs; public SqlBean(){ try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;Dat abaseName=jq92Model1","sa","sa"); } catch (ClassNotFoundException e) { // TODO自动生成 catch 块 e.printStackTrace(); } catch (SQLException e) { // TODO自动生成 catch 块 e.printStackTrace(); } } public int getInsert(String sql,JavaBean jBean){ int count=0; try { //获得prepareStatement pre=con.prepareStatement(sql); //为前面的?赋值 pre.setString(1,jBean.getName()); pre.setString(2,jBean.getPassword()); pre.setString(3,jBean.getSex()); pre.setInt(4,jBean.getAge()); count=pre.executeUpdate(); } catch (SQLException e) { // TODO自动生成 catch 块 e.printStackTrace(); }
增删改查代码 增: 调用的是hibernate的save方法。 Action中传值方式有两种,一种是以对象传值,一种是以属性传值,所以在Action中有两种方式来接收。 private HibernateTemplate hibernateTemplate; 一:以属性传值: jsp页面: 用户名:
密码:
年龄:
function addData() { var name= $("#name").val(); var psw = $("#psw").val(); var age= $("#age").val(); var param={"name":name,"psw":psw,"age":age}; $.post("adddata.action",param,function(data){ if(data="success") { alert("添加数据成功"); window.close(); window.opener.location.reload(); } else { alert("添加数据失败"); } }); } 需要注意的是:以属性传值的话Struts不会自动生成对象,需要自己手动来完成。如果是以对象来传值的话,会自动生成对象。 Framework frame = new Framework(); frame.setAge(age); frame.setName(name); frame.setPsw(psw); frame.setCreatetime(new Date()); frameworkService.saveData(frame); response.setCharacterEncoding("UTF-8"); response.getWriter().write("success");
增删改查流程 1)拷贝下面所说的.java文件,9个java文件和相应的包名,这些都是大果任封装好的文件,可以直接用。 dao包里面有:Dao.java 还有一个impl包:IDao.java manager包里面有:IBaseManager.java IManager.java IUserLoginManager.java 还有一个impl包:BaseManager.java struts包里面有: ApplicationResources.properties 还有一个action包:BaseAction.java IAction.java utils包里面有:MyActionProxy.java ObjectUtils.java 再把 log4j.properties 贴到src包下面。 2)把 applicationContext.xml spring-form.tld spring.tld struts-bean.tld struts-config.xml struts-html.tld struts-logic.tld struts-nested.tld struts-tiles.tld validator-rules.xml web.xml 这些以前写过的都可以贴过来,你可以直接把这个项目里的都贴过去,以后就直
接在这里该代码就行了。 以上两个步骤样就是为了完成手写SSH代码 3)新建一个pojo包: 创建一个实体: 先让这个类实现序列接口如: 然后写相应的字段: 利用get和set方法生成每个字段的get()和set()。例如: 4)为了更够生成所以为每一个字段写出相应的元数据:1.生成相应的表: 说明:利用hibernate生成UserLogin表。 2.字段id的映射,元数据要写在get()方法前面: 3. 字段username的映射,元数据要写在get()方法前面: 4. 字段password的映射,元数据要写在get()方法前面: 这样这个UserLogin.java就完成了。 5)右键项目名称找到“属性”选项: 找到:XDoclet 点击这个出来相应的界面: 单击按钮,
数据库语句增删改查 mysql语句用法,添加、修改、删除字段一,连接MySQL 二,MySQL管理与授权 三,数据库简单操作 四, 数据库备份 五,后记 一,连接MySQL 格式:mysql -h 远程主机地址 -u 用户名 -p 回车 输入密码进入: mysql -u root -p 回车 Enter password: ,输入密码就可以进入 mysql> 进入了 退出命令:>exit 或者ctrl+D 二,MySQL管理与授权 1.修改密码:
格式:mysqladmin -u 用户名 -p 旧密码 password 新密码 2.增加新用户: >grant create,select,update....(授予相关的操作权限) ->on 数据库.* -> to 用户名@登录主机 identified by '密码' 操作实例: 给root用户添加密码: # mysqladmin -u root password 52netseek 因为开始root没有密码,所以-p旧密码一项可以省略. 登陆测试: # mysql -u root -p 回车 输入密码,成功登陆. 将原有的mysql管理登陆密码52netseek改为52china. # mysqladmin -u root -p 52netseek password '52china' 创建数据库添加用户并授予相应的权限: mysql> create database phpbb; Query OK, 1 row affected (0.02 sec)
mysql> use phpbb; Database changed mysql> grant create,select,update,insert,delete,alter -> on phpbb.* -> to phpbbroot@localhost identified by '52netseek'; Query OK, 0 rows affected (0.00 sec) 授予所有的权限: >grant all privileges >on bbs.* >to bbsroot@localhost identified by '52netseek' 回收权限: revoke create,select,update,insert,delete,alter on phpbb.* from phpbbroot@localhost identified by '52netseek'; 完全将phpbbroot这个用户删除: >use mysql >delete from user where user='phpbbroot' and host='localhost'; >flush privileges; 刷新数据库 三,数据库简单操作
Mysql数据库·增删改查 Mysql Oracle(甲骨文) 大型数据库 MySql 中小型数据库 DB2 SqlServer ..... Mysql的发展: 瑞典的Mysql AB公司 2008年Sun公司(JAVA) 2009年Oracle 收购sun公司 IBM 69亿美元sun Eclipse(日蚀) Oracle 74亿美元sun Mysql的简单使用: 1.登陆mysql数据库 win+r --->cmd mysql -uroot -p1234 修改密码:mysql> set password for rootlocalhost = password('1234'); 此处可能存在异常情况原因:a、未配置环境变量b、Mysql服务未开启(net start mysql) 2.对库的操作 a.查看所有的库 show databases; 系统自带库: information_schema mysql test b.创建库 create database day01;(不指定编码,跟随数据库系统编码) create database db1 default character set gbk;(指定编码) 查看创建库的语句: show create database 库名. 修改库的编码: alter database day01 default character set utf8; c.删除库 drop database 库名.
drop database day01; 注意: 系统自带的三个库不能删除. d.使用库 use db1; 3.对表的操作 表:二维关系表有行有列的关系表. 记录:表中的一行数据. 字段:表中的一列. 常用的字段类型: 字符串类型: varchar(长度) 、char 数值类型: int(整数) float double(小数) 日期类型: date a.创建表 员工表:员工号性别年龄职位薪水入职日期 create table emp( empno varchar(4), name varchar(30), sex varchar(5), age int(3), job varchar(30), salary int(5), hiredate date ); b.查看所有的表 show tables; c.查看建表语句 show create table 表名. d.查看表结构 desc 表名. e.往表中插入数据 e1.给表中所有的字段插入数据 insert into emp (empno,name,sex,age,job,salary,hiredate) values ('1001','zhangsan','m',22,'developer',10000,'2015-12-21'); 简写形式: insert into emp values ('1002','lisi','m',23,'test',8000,'2015-10-10'); e2.给表中部分字段插入数据 insert into emp(empno,name,sex,age) values ('1003','cuihua','w',18);
C_连接sql数据库执行简单的增删改查操作 以users表为例,有三个字段,自增长的编号id,int类型;名称name,nvarchar 类型,密码pwd,nvarchar类型 首先在vs2005中引入using System.Data.SqlClient;命名空间 /// /// 增加 /// /// 姓名 /// 密码 /// public int Insert(string name,string pwd) { SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True");//Initial Catalog后面跟你数据库的名字,如果你的SqlServer服务器名称后面不带SQLEXPRESS,那么Data Source=. conn.Open(); string sql = "insert into users(name,pwd) values(@name,@pwd)"; SqlCommand cmd = new SqlCommand(sql,conn); SqlParameter parn = new SqlParameter("@name",name); cmd.Parameters.Add(parn); SqlParameter parp = new SqlParameter("@pwd", pwd); cmd.Parameters.Add(parn); int result = cmd.ExecuteNonQuery();//result接收受影响行数,也就是说result大于0的话表示添加成功 conn.Close(); cmd.Dispose(); return result; } /// /// 删除 /// /// 姓名 /// 密码 /// public int Update(int id) { SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True");//Initial Catalog后面跟你数据库的名字,如果你的SqlServer服务器名称后面不带SQLEXPRESS,那么Data Source=.
表单的增删改查示例 代码
java 增删改查 学号 12741214 Java程序设计 实验报告 数据库连接实现查询 学生姓名苗莉萍 专业、班级12计算机12班 指导教师 成绩 计算机与信息工程学院 2013 年 7 月 4 日
一.实验名称: 数据库连接实现查询 二.实验目的与环境: 环境:Eclipse8.0。 目的:图形界面设计---熟悉java.awt包中的组件,掌握图形界面设计方法,理解委托事件处理模型。 编写一个简单的java连接数据库程序,掌握Java语言的程序设计的 能力,程序有合理的界面设计,能够在界面中实现对记录进行的录入, 增添新的记录,实现上一页,下一页以及最后一页查询等,实现删除 和修改等功能。并且能够顺利关闭界面,退出程序。 (1)掌握Java语言的程序设计方法; (2)理论联系实际,进一步提高学生的软件开发技术; (3)培养学生分析、解决问题的能力; 三.实验要求: (1)设计图形界面添加菜单:窗口上添加各种组件及菜单,并处理组件及菜单的事件监听程序。 (2)熟悉JAVA开发环境,掌握JAVA程序的编译和运行; (3)掌握JAVA基本编程技术和方法; (4)掌握GUI图形界面编程技术; (5)了解异常处理机制。 四.设计步骤: 1:界面设计 创建一个登录名和登录密码,实现用户的登录。
2:功能设计 对每个菜单项进行注册监听。点击四个按钮时时,显示不同记录数据。 3.对数据库进行查询,方便用户查找记录并且及时进行修改。 4.熟练掌握对话框及框架的布局,当添加一新记录时,跳出对话框,填写数据,并显示添加成功。
5.在窗口上方,有四个button按钮,分别是首页,上一页,下一页,最后一页, 程序源代码: package com.group.view; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Vector; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import com.group.db.OperateDB; import com.group.function.Mytable; /*在actionListener 中不能传递当前对象*/ public class MainFrame extends JFrame {
简单的连接数据库增删改查(1) package com.suqin.Tank2; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.Vector; import javax.swing.JScrollPane; import javax.swing.table.AbstractTableModel; public class Mxstu extends AbstractTableModel { // 集合 Vector rowDate, columnnNames; // 连接数据库 Connection conn; // 执行sql 语句 PreparedStatement pst; // 集合级 ResultSet rs;
// 驱动程序 public String Driver = "com.mysql.jdbc.Driver"; // 连接地址mysql数据库名称public String Url = "jdbc:mysql://127.0.0.1:3306/mysql"; // 用户名 public String name = "root"; // 用户密码 public String password = "admin"; //sql语句 String sql; public void Showsql(String sql) { if (sql=="") { sql="select * from students"; } columnnNames = new Vector(); // 设置列 columnnNames.add("学号"); columnnNames.add("姓名"); columnnNames.add("性别"); columnnNames.add("年龄"); columnnNames.add("籍贯"); columnnNames.add("系别"); // 设置行内容 rowDate = new Vector(); // 夹在驱动程序 try { Class.forName(Driver); conn = DriverManager.getConnection(Url, name, password); // 执行语句 //sql = ("select * from students"); pst = conn.prepareStatement(sql); // 得到结果集合 rs = pst.executeQuery(); // 得到记录 while (rs.next()) { // 设置行 Vector hang = new Vector(); hang.add(rs.getInt(1)); hang.add(rs.getString(2)); hang.add(rs.getString(3)); hang.add(rs.getInt(4)); hang.add(rs.getString(5));
增删改查操作或方法 增删改查操作或方法 //鼠标选中某一行后,显示在文本框中; private void jTable1MouseClicked(java.awt.event.MouseEvent evt){ int row=this.jTable1.getSelectedRow(); Integer id=(Integer)this.jTable1.getValueAt(row,0); String name=(String)this.jTable1.getValueAt(row,1); this.txtId.setText(id.toString()); this.txtName.setText(name); } //删除的方法 public boolean removeClass(int id){ boolean flog=false; String sql="delete from class where id=?"; try{ if(conn==null||conn.isClosed()){ conn=DBUtil.getConnection(); } pstmt=conn.prepareStatement(sql); pstmt.setInt(1,id); if(pstmt.executeUpdate()>0){ flog=true; } }catch(Exception e){ e.printStackTrace(); }finally{ try{ pstmt.close(); conn.close(); }catch(Exception e2){ e2.printStackTrace(); } } return flog; } //删除操作 private void btnRemoveActionPerformed(java.awt.event.ActionEvent evt){ String sid=this.txtId.getText(); if(sid!=null&&!sid.equals("")){
增删改查思路及步骤 1.建数据库表 主键自增或者varchar 自增选择自增 uuid() 36位字符串例如:25cd098d-3a53-11e4-ad40-0021cc6fa865 替换“-”REPLACE(UUID() ,'-','') 2.javaBean 根据数据库表建立javaBean --------------------------------------------------------查询开始----------------------------------------------------- 3.listServlet >> 查询数据>>业务逻辑层(service , imp) >> 数据持久层(dao,imp)>>传输数据>>跳转 listServlet 继承httpServlet >> 覆盖service()>>调用service>>dao protected void service(HttpServletRequest req, HttpServletResponse resp) 注意:web.xml 要配置好 业务逻辑层service.query 数据持久层dao.query 传输数据:req.setAttribute(xxx,xxx); 跳转:req.getRequestDispatcher("地址").forward(req, resp); 4.jsp 查询(list/query/xxx) 表格显示字段显示出来 注意: --------------------------------------------------------查询完毕-----------------------------------------------------
MVC实现增删改查的小例子 MVC 作者:深蓝王子 SearchList.jsp
92期学员信息如下 id 姓名 密码 性别 年龄 操作 <% String sql="select * from student order by id"; java.util.List list=sBean.getSearch(sql); for(Iterator it=list.iterator();it.hasNext();){ //获得JavaBean的一个对象 jBean=(com.jq92.bean.JavaBean)it.next(); %> <%=jBean.getId() %> <%=jBean.getName() %> <%=jBean.getPassword() %> <%=jBean.getSex() %> <%=jBean.getAge() %> 删除 更新 <% } %>
返回 SQL常用增删改查语句 SQL常用增删改查语句 增加 现在有一张表,表(Test)里面有三个字段,分别为sno,sname,age。举例用一条增加SQL语句,插入一条数据进库。 语句: Insert into 表名 value(‘数据1’,’数据2’,’数据3’) 具体操作: Insert into testvalues('test','test','1') 通过上面这条语句,Test表里面就多了一条数据。如下图所示: 上面这个例子,是在每条字段都需要插入的时候为了方便而直接在insert into 后面跟表名。但是也会遇到一些特殊的情况,比如一张表,因为有主外键约束(我这里只有一张表),而我只想插入被约束的字段sno(主键)加上age这个字段,在insert into的时候就需要指明需要插入的字段,下面举例说明: 语句: Insert into 表名(‘字段名1’,’字段名2’) values(‘数据1’,’数据2’) 具体操作: insert into test(sno,age)values('彭宇','21') 这样数据库里面,又多了一条数据,而没有插入任何数据那个字段默认为NULL。如下图所示: 删除 在我们增加数据入库的时候,难免会出现数据录入错误,或者信息过期后不再需要的数据,所以我们要利用删除语句将表里面不需要的数据删除掉。下面举例说明。 语句: Delete from 表名 where 字段名='需要删除的数据' 具体操作: delete from test where sno='test' 通过这条SQL语句,Test表主键sno字段里面数据为test的该条数据就已经被删除了。Ps:一般来说都以主键为条件进行删除,因为主键是不可重复的,我们可以设 想一下,如果没使用主键为删除条件,假设一个公司有两个叫彭宇的人。我使用sname=’彭宇’作为删除条件的话,那么这两个同名同姓人的资料都会被删除掉,所以这是不可取的。批量删除 当有多条数据需要删除的时候,我们可以使用批量删除语句来实现一次删除多条数据。 语句: delete from表名where字段名in('该字段里面的数据1','该字段里面的数据2',……) 具体操作: 首先,看一下Test表里面有多少条数据,如下图: