java学习笔记——使用JDBC,对数据库进行增删改查(方案一)
java学习笔记——使用JDBC,对数据库进行增删改查(方案
一)
工具类BaseDao.java
[java] view plaincopy
1.package com.accp.jdbc;
2.
3.import java.sql.Connection;
4.import java.sql.DriverManager;
5.import java.sql.PreparedStatement;
6.import java.sql.ResultSet;
7.import java.sql.SQLException;
8.
9.import org.apache.log4j.Logger;
10.
11.public class BaseDao {
12.// 使用log4j记录日志
13.private static Logger logger = Logger.getLogger(BaseDao.class);
14.// 连接驱动
15.private static final String DRIVER = "com.microsoft.sqlserver.jd
bc.SQLServerDriver";
16.// 连接路径
17.private static final String URL = "jdbc:sqlserver://localhost:14
33;databaseName=test";
18.// 用户名
19.private static final String USERNAME = "sa";
20.// 密码
21.private static final String PASSWORD = "sssaaa";
22.
23.//静态代码块
24.static {
25.try {
26.// 加载驱动
27. Class.forName(DRIVER);
28. } catch (ClassNotFoundException e) {
29. e.printStackTrace();
30. logger.error("加载驱动失败", e);
31. }
32. }
33.
34./*
35. * 获取数据库连接
36. */
37.public Connection getConnection() {
38. Connection conn = null;
39. logger.debug("开始连接数据库");
40.try{
41.//与数据库建立连接
42. conn=DriverManager.getConnection(URL, USERNAME, PASSWORD);
43. }catch(SQLException e){
44. e.printStackTrace();
45. logger.error("数据库连接失败!",e);
46. }
47. logger.debug("数据库连接成功");
48.return conn;
49. }
50.
51./*
52. * 关闭数据库连接,注意关闭的顺序
53. */
54.public void close(ResultSet rs, PreparedStatement ps, Connection conn)
{
55.//注意:最后打开的最先关闭
56.if(rs!=null){
57.try{
58. rs.close();
59. rs=null;
60. }catch(SQLException e){
61. e.printStackTrace();
62. logger.error("关闭ResultSet失败",e);
63. }
64. }
65.if(ps!=null){
66.try{
67. ps.close();
68. ps=null;
69. }catch(SQLException e){
70. e.printStackTrace();
71. logger.error("关闭PreparedStatement失败",e);
72. }
73. }
74.if(conn!=null){
75.try{
76. conn.close();
77. conn=null;
78. }catch(SQLException e){
79. e.printStackTrace();
80. logger.error("关闭Connection失败",e);
81. }
82. }
83. }
84.
85./*
86. * 查询方法
87. *
88. * sql: 要执行的sql语句
89. * handler:自定义接口
90. * obj:可变参数列表
91. */
92.public
){
93. Connection conn=getConnection(); //获得连接
94. PreparedStatement ps=null;
95. ResultSet rs=null;
96.try{
97.//创建PreparedStatement对象
98. ps=conn.prepareStatement(sql);
99.//为查询语句设置参数
100. setParameter(ps, obj);
101.//获得ResultSet结果集
102. rs=ps.executeQuery();
103.//返回对象
104.return handler.callback(rs);
105. }catch(SQLException e){
106. e.printStackTrace();
107. logger.error("数据库操作异常",e);
108. }finally{
109.//关闭连接
110. close(rs,ps,conn);
111. logger.debug("释放资源成功");
112. }
113.return null;
114. }
115.
116./*
117. * 增加、修改、删除,的方法
118. *
119. * obj: 可变参数列表
120. */
121.public int update(String sql,Object...obj ){
122. Connection conn=getConnection(); //获得连接
123. PreparedStatement ps=null;
124.int rows=0;
125.try{
126.//创建PreparedStatement对象
127. ps=conn.prepareStatement(sql);
128.//为查询语句设置参数
129. setParameter(ps, obj);
130.//获得受影响的行数
131. rows=ps.executeUpdate();
132. }catch(SQLException e){
133. e.printStackTrace();
134. logger.error("数据库操作异常",e);
135. }finally{
136.//关闭连接
137. close(null,ps,conn);
138. logger.debug("释放资源成功");
139. }
140.return rows;
141. }
142.
143./*
144. * 为预编译对象设置参数
145. */
146.public void setParameter(PreparedStatement ps,Object... obj) 147.throws SQLException {
148.if(obj!=null && obj.length>0){
149.//循环设置参数
150.for (int i = 0; i < obj.length; i++) {
151. ps.setObject(i+1, obj[i]);
152. }
153. }
154. }
155.}
156.
157.//自定义接口
158.interface ResultSetHandler
159.public T callback(ResultSet rs);
160.}
操作类,进行增删改查UserDao.java
[java] view plaincopy
1.package com.accp.jdbc;
2.
3.import java.sql.Connection;
4.import java.sql.PreparedStatement;
5.import java.sql.ResultSet;
6.import java.sql.SQLException;
7.import java.sql.Statement;
8.import java.util.ArrayList;
9.import java.util.List;
10.
11.import https://www.360docs.net/doc/519718907.html,er;
12.
13.public class UserDao extends BaseDao {
14.public static void main(String[] args) {
15. UserDao user=new UserDao();
16. List
17.//查询id<10的数据
18. list=user.queryUser();
19.//遍历结果集
20.for(User u:list){
21. System.out.println(u);
22. }
23.
24.//查询单条数据
25. System.out.println(user.queryUserById(10));
26.
27.//更新数据
28. User u=new User();
29. u.setId(2);
30. u.setName("张龙");
31. u.setAge(22);
32. System.out.println("更新"+user.updateUser(u)+"条数据");
33.
34.//删除数据
35. System.out.println("删除"+user.deleteUser(15)+"条数据");
36.
37.//插入数据
38. User u1=new User();
39. u1.setName("张三");
40. u1.setAge(18);
41. user.insertUser(u1);
42. }
43.
44.//查询多条信息
45.public List
46. String sql="select * from users where id<10";
47.//匿名实现自定义接口
48. ResultSetHandler> handler=new ResultSetHandler
>(){
49.@Override
50.public List
51. List
User类型
52. User user=null;
53.try {
54.while(rs.next()){
55. user=new User(); //实例化一个User对象
56. user.setId(rs.getInt("id"));
57. user.setAge(rs.getInt("age"));
58. user.setName(rs.getString("name"));
59. list.add(user); //添加到list集合
60. }
61. } catch (SQLException e) {
62. e.printStackTrace();
63. }
64.return list;
65. }
66. };
67.return query(sql,handler);
68. }
69.
70.//查询单条数据
71.public User queryUserById(int id){
72. String sql="select * from users where id=?";
73.//匿名实现自定义接口
74. ResultSetHandler
75. User user=new User();
76.@Override
77.public User callback(ResultSet rs) {
78.try {
79.while(rs.next()){
80. user.setAge(rs.getInt("age"));
81. user.setId(rs.getInt("id"));
82. user.setName(rs.getString("name"));
83. }
84. } catch (SQLException e) {
85. e.printStackTrace();
86. }
87.return user;
88. }
89. };
90.return query(sql,handler,id);
91. }
92.
93.//更新数据
94.public int updateUser(User user){
95. String sql="update users set name=?,age=? where id=?";
96.return update(sql, user.getName(),user.getAge(),user.getId());
97. }
98.
99.//删除数据
100.public int deleteUser(int id){
101. String sql="delete from users where id=?";
102.return update(sql,id);
103. }
104.
105.//插入数据,并返回自动增长的的主键值
106.public void insertUser(User user){
107. Connection conn=getConnection(); //获得连接
108. PreparedStatement ps=null;
109. ResultSet rs=null;
110. String sql="insert into users values(?,?)";
111.try{
112.// 创建能返回自动生成的主键的值的预编译对象
113. ps=conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
114. ps.setString(1,user.getName());
115. ps.setInt(2, user.getAge());
116.int rows=ps.executeUpdate();
117.// 获得自动增长的的主键值
118. rs=ps.getGeneratedKeys();
119. rs.next();
120.//获得id
121.int id=rs.getInt(1);
122. System.out.println("成功添加:"+rows+"条数据,id是:"+id); 123. }catch(SQLException e){
124. e.printStackTrace();
125. }finally{
126. close(rs,ps,conn);
127. }
128. }
129.}
插入测试数据InsertTest.java
[java] view plaincopy
1.package com.accp.jdbc;
2.
3.import java.sql.Connection;
4.import java.sql.PreparedStatement;
5.import java.sql.SQLException;
6.
7.public class InsertTest extends BaseDao {
8.public static void main(String[] args) {
9. InsertTest user=new InsertTest();
10. user.insertUser();
11. }
12.
13.public void insertUser() {
14. String sql = "insert into users values(?,?)";
15. Connection conn = getConnection();
16. PreparedStatement ps = null;
17.try {
18.// 禁止自动提交事务
19. conn.setAutoCommit(false);
20.// 创建能返回自动生成的主键的值的预编译对象
21. ps = conn.prepareStatement(sql);
22.//开始时间的毫秒数
23. Long start=System.currentTimeMillis();
24.for (int i = 0; i < 10000; i++) {
25. ps.setString(1, i+"");
26. ps.setInt(2, 22);
27. ps.addBatch();// 添加到批处理命令中
28. }
29. ps.executeBatch();// 执行批处理
30. https://www.360docs.net/doc/519718907.html,mit();// 提交事务
31.//结束时间的毫秒数
32. Long stop=System.currentTimeMillis();
33.//得到总耗时
34. Long ms=stop-start;
35. System.out.println("插入一万记录耗时:"+ms+"毫秒");
36. } catch (SQLException e) {
37. e.printStackTrace();
38.//取消事务
39.try{
40. conn.rollback();
41. }catch(SQLException ee){
42. ee.printStackTrace();
43. }
44. } finally {
45.//打开自动提交事务
46.try {
47. conn.setAutoCommit(true);
48. } catch (SQLException e) {
49. e.printStackTrace();
50. }
51. close(null, ps, conn);
52. }
53. }
54.
55.}
数据库的增删改查(精)
学习收藏数据库增删改查 --查询信息系和计算机系的学生,并按学生所在系和学号排序。select sno,sname,Sdept from Student where Sdept='CS'OR Sdept='IS' order by Sdept,sno ASC --查询学生表中最小的年龄。 select MIN(sage from student --查询课程名中包含“数据”的课程名。 select cno,cname from course where Cname like'%数据%' --查询先行课程为空值的课程号、课程名及学分 select cno,cname,ccredit from Course where Cpno is null --查询李勇选修的数据库课程的成绩 select grade from SC where Sno=(select Sno from Student where Sname='李勇'and Cno=(select Cno from Course where cname='数据库' --查询平均成绩分以上的学生的学号 select distinct sno from SC scx where (select AVG(Grade from SC scy
where scy.sno=scx.Sno>85 --求计算机系没有选修数据库课程的学生姓名 select sname from Student where Sno not in(select Sno from SC where Cno in(select Cno from Course where Sname='数据库'and Sdept='IS' --求至少选修了学号为S1所选修的全部课程的学生学号 select distinct sno from SC scx where not exists(select*from SC scy where scy.Sno='20021522'and not exists(select* from sc scz where scz.sno=scx.sno and https://www.360docs.net/doc/519718907.html,o=https://www.360docs.net/doc/519718907.html,o --求各系的系的学生人数的,并将结果按学生人数的降序排序 select Sdept,COUNT(sno from Student group by Sdept order by Sdept ASC --查询选修了数学课程并且成绩高于该门课程平均分的学生学号和成绩 select sno,grade from SC scx where Grade>=(select AVG(Grade from SC scy where Cno=(select Cno from Course where Cname='数学'and Cno=(select Cno from Course
java增删改查代码(精)
import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JTextField; import javax.swing.JLabel; import javax.swing.JButton; import java.awt.Font; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.JScrollPane; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JTable; import javax.swing.table.DefaultTableModel;
public class test01 extends JFrame { private JPanel contentPane; private JTextField t1; private JTextField t2; private JTextField t3; private Connection con;//声明一个连接private Statement sql;//声明一个statement 对象private ResultSet rs;//声明一个结果集 private PreparedStatement pst; private JTable table; private String s[][] = new String[20][3]; /** * Launch the application. */ public static void main(String[] args { EventQueue.invokeLater(new Runnable( { public void run( { try { test01 frame = new test01(;
数据库增删改查基本语句
数据库增删改查基本语句 adoquery1.Fielddefs[1].Name; 字段名 dbgrid1.columns[0].width:=10; dbgrid的字段宽度 adoquery1.Fields[i].DataType=ftString 字段类型 update jb_spzl set kp_item_name=upper(kp_item_name) 修改数据库表中某一列为大写select * from master.dbo.sysobjects ,jm_https://www.360docs.net/doc/519718907.html,ers 多库查询 adotable1.sort:='字段名称ASC' adotable排序 SQL常用语句一览 sp_password null,'新密码','sa' 修改数据库密码 (1)数据记录筛选: sql="select * from 数据表where 字段名=字段值orderby 字段名[desc] " sql="select * from 数据表where 字段名like '%字段值%' orderby 字段名[desc]" sql="select top10 * from 数据表where 字段名orderby 字段名[desc]" sql="select * from 数据表where 字段名in('值1','值2','值3')" sql="select * from 数据表where 字段名between 值1 and 值2" (2)更新数据记录: sql="update 数据表set 字段名=字段值where 条件表达式" sql="update 数据表set 字段1=值1,字段2=值2……字段n=值n where 条件表达式" (3)删除数据记录: sql="delete from 数据表where 条件表达式" sql="delete from 数据表"(将数据表所有记录删除) (4)添加数据记录: sql="insert into 数据表(字段1,字段2,字段3…) values(值1,值2,值3…)" sql="insert into 目标数据表select * from 源数据表"(把源数据表的记录添加到目标数据表)
学生信息的增删改查(java)
精心整理 学生信息的增删改查注意:此处用到的是access 数据库。 运行后效果如图: 代码如下: packageexample; importjava.awt.*; importjavax.swing.*; // f1.add(b1);f1.add(t2); f1.add(b2);f1.add(b3); f1.add(b4);f1.add(t3); f1.add(modify);f1.add(t4); f1.add(direction); f1.setSize(200,200);//设置窗体大小 b1.addActionListener(this); b2.addActionListener(this);//设置按钮事件 b3.addActionListener(this); b4.addActionListener(this);
modify.addActionListener(this); direction.addActionListener(this); } publicvoidactionPerformed(ActionEvente){ f1.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//关闭窗体后释放资源,若不写这条语句, //则虽然关闭了窗体,但进程还在运行。 try{//这个try是在整个action中的,用于捕获建立连接异常 Stringdburl="jdbc:odbc:mydb";//mydb是我建立的access数据源 Connectionconn=DriverManager.getConnection(dburl);//这四条语句是用来在整个action事件中建立连接的 中重 do { } 图 jTable.setSize(newDimension(383,81)); JScrollPanescroller=newJScrollPane(jTable);//创建带有滚动条的面板,并将表格视图加入 f2.add(scroller,BorderLayout.CENTER);//将面板重新加入溶器中 f2.validate();//验证此容器及其所有子组件 while(rs.next()){ Stringss=rs.getString("id");//显示输出结果 Strings2=rs.getString("name"); } rs.close(); stml.close(); conn.close();//使用完后要记得关闭所有连接
SQL数据库中的增删改查总结1
一、增:有2种方法 1.使用insert插入单行数据: 语法:insert [into]<表名> [列名] values <列值> 例:insert into Strdents (姓名,性别,出生日期) values ('邢金聪','男','1990/6/15') 注意:如果省略表名,将依次插入所有列 2.使用insert,select语句将现有表中的数据添加到已有的新表中 语法:insert into <已有的新表> <列名> select <原表列名> from <原表名> 例:insert into addressList ('姓名','地址','电子邮件')selectname,address,email from Strdents 注意:查询得到的数据个数、顺序、数据类型等,必须与插入的项保持一致 二、删:有2中方法 1.使用delete删除数据某些数据 语法:delete from <表名> [where <删除条件>] 例:delete from awhere name='邢金聪'(删除表a中列值为邢金聪的行) 注意:删除整行不是删除单个字段,所以在delete后面不能出现字段名 2.使用truncate table 删除整个表的数据
语法:truncate table<表名> 例:truncate table addressList 注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能 用于有外建约束引用的表 三、改 使用update更新修改数据 语法:update <表名> set <列名=更新值> [where <更新条件>] 例:truncate table addressList 注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能 用于有外建约束引用的表 四、查 1.普通查询 语法:select <列名> from <表名> [where <查询条件表达试>] [order by<排序的列 名>[asc或desc]] 1).查询所有数据行和列 例:select * from a 说明:查询a表中所有行和 2).查询部分行列--条件查询 例:select i,j,kfrom a where f=5 说明:查询表a中f=5的所有行,并显示i,j,k3列
JAVA数据库基本操作增删改查(精)
JAVA 数据库基本操作, 增删改查 package mypack; JAVA 数据库基本操作, 增删改查 import java.sql.Connection; import java.sql.ResultSet; import java.util.ArrayList; public class DbOper {//查询多行记录public ArrayList select({Connection conn =null; ResultSet rs =null; try {import java.sql.PreparedStatement; import java.sql.SQLException; PreparedStatement pstmt =null; ArrayList al =new ArrayList(; conn =DbConn.getConn(;pstmt =conn.prepareStatement(“select *from titles ”; rs =pstmt.executeQuery(;while (rs.next({Titles t =new Titles(;t.setTitleid(rs.getString(1;t.setTitle(rs.getString(2;al.add(t;}}catch (SQLExceptione { e.printStackTrace(;}finally {try {//TODO 自动生成catch 块if (rs!=null rs.close(;if (pstmt!=nullpstmt.close(;if (conn!=nullconn.close(;}catch (SQLExceptione { e.printStackTrace(;}}//TODO 自动生成catch 块 return al; }//查询单个对象public Titles selectOne(Stringtitleid{Connection conn =null; ResultSet rs =null; try {PreparedStatement pstmt =null; Titles t =new Titles(;
数据库基本知识(自己整理,初学者可以看一下,基于某MySql)
数据库
1常见数据库 1.1MySql : 甲骨文 1.2Oracle: 甲骨文 1.3SQL Server: 微软 1.4Sybase: 赛尔斯 1.5DB2: IBM 2MySql基础知识 2.1关系结构数据模型数据库 2.2SQL(Structured Query Language)结构化查询语言2.2.1DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等 操作数据库 CREATE DATABASE [IF NOT EXISTS]mydb1 USE mydb1 DROP DATABASE [IF NOT EXISTS] mydb1
ALTER DATABASE mydb1 CHARACTER SET utf8 操作表 插入表 CREATE TABLE stu( sid CHAR(6), sname VARCHAR(20), age INT, gender VARCHAR(10) ); 更改表 ALTER TABLE t_user ADD (student varcher(20)) ALTER TABLE t_user MODIFY gender CHAR(20) ALTER TABLE t_user CHANGE gender VARCHER(20) ALTER TABLE t_user REMANE genderTO genders ALTER TABLE t_user DROP gender 删除表 DROP TABLE t_user 2.2.2DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据) 插入数据 INSERT INTO t_user VALUES() INSERT INTO 表名 VALUES(值1,值2,…)
学生信息的增删改查(java)
学生信息的增删改查 注意:此处用到的就是access数据库。 运行后效果如图: 代码如下: package example; import java、awt、*; import java、awt、event、ActionEvent; import java、awt、event、ActionListener; import javax、swing、*; import java、sql、*; import java、util、Vector; class myrandom extends JFrame implements ActionListener{ //这个程序的数据就是没有写入文件的 JFrame f1,f2; JButton b1,b2,b3,b4,modify,direction; JLabel a1; JTextField t1,t2,t3,t4; JTable table; myrandom(){ table=new JTable(); f1=new JFrame("学生信息系统"); f1、setVisible(true);//设置窗体可见 a1=new JLabel("输入学号:"); t1=new JTextField(100); t2=new JTextField(100); b1=new JButton("查姓名:"); b2=new JButton("插入信息"); b3=new JButton("查瞧数据"); b4=new JButton("删除"); t3=new JTextField(100); modify=new JButton("修改"); direction=new JButton("操作说明");
数据库增删改查
02.连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 03.创建数据库:create database [库名] 04.显示所有数据库: show databases; 05.打开数据库:use [库名] 06.当前选择的库状态:SELECT DATABASE(); 07.创建数据表:CREATE TABLE [表名]([字段名] [字段类型]([字段要求]) [字段参数], ......); 08.显示数据表字段:describe 表名; 09.当前库数据表结构:show tables; 10.更改表格 11. ALTER TABLE [表名] ADD COLUMN [字段名] DATATYPE 12. 说明:增加一个栏位(没有删除某个栏位的语法。 13. ALTER TABLE [表名] ADD PRIMARY KEY ([字段名]) 14. 说明:更改表得的定义把某个栏位设为主键。 15. ALTER TABLE [表名] DROP PRIMARY KEY ([字段名]) 16. 说明:把主键的定义删除。 17.显示当前表字段:show columns from tablename; 18.删库:drop database [库名]; 19.删表:drop table [表名]; 20.数据操作 21.添加:INSERT INTO [表名] VALUES('','',......顺序排列的数据); 22.查询: SELECT * FROM [表名] WHERE ([条件]); 23.建立索引:CREATE INDEX [索引文件名] ON [表名] ([字段名]); 24.删除:DELETE FROM [表名] WHERE ([条件]); 25.修改:UPDATE [表名] SET [修改内容如name = 'Mary'] WHERE [条件]; 26. 27.导入外部数据文本: 28.1.执行外部的sql脚本 29.当前数据库上执行:mysql < input.sql 30.指定数据库上执行:mysql [表名] < input.sql 31.2.数据传入命令load data local infile "[文件名]" into table [表名]; 32.备份数据库:(dos下) 33.mysqldump --opt school>school.bbb 34. 35. 36. 37.提示:常用MySQL命令以";"结束,有少量特殊命令不能加";"结束,如备份数据库 38.一. 增删改查操作 39. 40.============================================================================ ===== 41.1. 增: 42.insert into 表名values(0,'测试'); 43.注:如上语句,表结构中有自动增长的列,也必须为其指定一个值,通常为0 44.insert into 表名(id,name) values(0,'尹当')--同上
java增删改查代码
java增删改查代码 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DBTools { // 定义一个方法,用来得到一个"新的"连接对象public static Connection getConnection() { Connection conn = null; String driverName = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin:@localhost:1521:ora9i"; String userName = "scott"; String passWord = "tiger"; try { Class.forName(driverName); conn = DriverManager.getConnection(url,userName,passWord );
} catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } public static void closeConn(Connection conn) { try { if(conn != null) { conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void closeState(Statement state) {
SQL常用增删改查语句
SQLSQL常用增删改查语句 作者:hiker 一.Insert 插入语句 1.Insert into 表名(列名)values (对应列名值) //插入一行. 2.Insert into 新表名(列名) Select (列名) 旧表名 3.Select 旧表名.字段… Into 新表名from 旧表名 4.Select identity ( 数据类型,标识种子,标识增长量) as 列名 Into新表名 From 旧表名 5.Insert 表名(列名) Select (对应列名值) union Select (对应列名值) union Select (对应列名值) 二.Update 更新语句 1.Update 表名set 列名=’更新值’ where 更新条件 三.delete 删除语句 1.delete from 表名where 删除条件 2.truncate table 表名//删除表中所有行 四.select 基本查询语句 1.select 列名from 表名where 查询条件 order by 排序的列名asc或desc升/降 2.select 列名as 别名from 表名where 查询条件 3.select 列名from 表名where 列名is null //查询空值 4.select 列名, ‘常量值’ as 别名from 表名//查询时定义输出一列常量值 5.select top 5 列名from 表名//查询前5行 6.select top 5 percent 列名from 表名//查询前百分之5的数据行 五.select 函数查询语句 1.select LEN(Class_Name)from Class //查询class_Name字符串长度 2.select upper(Class_Name)from Class //查询class_Name并转换为大写 3.ltrim和rtrim //清除字符串左右空格 4.select REPLACE(card_No,'0','9')from CardRecord//修改列中字符串中的字符 列名字符串中0修改为9 5.select STUFF(Card_No,2,3,'8888')from CardRecord 列名字符串中第2个开始删除3个字符,再从第二个开始插入8888字符串 6.select GETDATE()//显示系统日期
mysql增删改查基本语句
mysql 增、删、改、查基本语句 数据库的链接和选择及编码 $link=mysql_connect("localhost","root","123456") or die("数据库连接失败".mysql_error()); $sel=mysql_select_db("login",$link) or die("数据库选择失败".mysql_error()); mysql_query("set names 'utf8'"); 添加数据 $link=mysql_connect("localhost","root","123456") or die("数据库连接失败".mysql_error()); $sel=mysql_select_db("login",$link) or die("数据库选择失败".mysql_error()); mysql_query("set names 'utf8'",$sel); $add="insert into title(title,content,username,time) values('$title','$content','$username',$time)"; $query=mysql_query($add); if($query){ echo "add sucess"; echo ""; } else echo "add false"; 删除数据 $link=mysql_connect("localhost","root","123456") or die("数据库连接失败".mysql_error()); $sel=mysql_select_db("login",$link) or die("数据库选择失败".mysql_error()); mysql_query("set names 'utf8'"); $id=$_GET['id']; $delete="delete from title where id='$id'"; $query=mysql_query($delete); if($query){ echo "delete sucess!"; echo ""; } else echo "delete false"; 改数据 $link=mysql_connect("localhost","root","123456") or die("数据库连接失败".mysql_error()); $sel=mysql_select_db("login",$link) or die("数据库选择失败".mysql_error()); mysql_query("set names 'utf8'",$sel);
JavaWeb应用实例servlet实现oracle基本增删改查(精)
Java Web 应用实例 servlet实现oracle 基本增删改查 分类:JAVA WEB应用实例2012-08-31 16:51 3515人阅读评论(0 收藏举报 https://www.360docs.net/doc/519718907.html,/a542214712/article/details/7924444 很久没有写博客了,可能是太懒散,不愿意把时间花在这上面,可是我心里还是知道写博客的重要性的,所以从今天开始,我将与大家分享一下我学JAVA WEB写的一些小实例,我个人是不太喜欢书本上的晦涩的概念的,所以我花了更多的时间在一些应用实例上,我觉得这样的学习方式很适合我,由简到繁,由浅入深 废话不多话,开始我们的第一个实例: servlet实现oracle 基本增删改查 开发环境:JDK7 +Myeclipse10+tomcat7.0+oracle 11g 首先附上数据库创建脚本: [sql]view plaincopy 1. create table student( 2. id VARCHAR2(50 PRIMARY KEY NOT NULL, 3. name varchar2(50 NOT NULL, 4. calssGrent varchar2(50 NOT NULL , 5. result varchar(12 NOT NULL 6. ; 7. insert into student(id,name,calssGrent,result values(perseq.nextval,'张三 ','33','98' 下图为代码结构图和功能演示界面做的比较糟糕只为实现功能:
MMC_01.java 页面 //主界面提供添加,修改删除的方法 [java]view plaincopy 1. package org.lsy.servlet; 2. 3. import java.io.IOException; 4. import java.io.PrintWriter; 5. import java.sql.Connection; 6. import java.sql.DriverManager; 7. import java.sql.ResultSet; 8. import java.sql.Statement;
数据库增删改查操作(2)(精)
数据库增删改查操作(2) 一、案例描述 程序运行的时候加载的界面如图1,包括添加、删除、修改和查询所有数据按钮,并实现相应功能。 图1 图2 单击“添加”按钮,插入一条记录,效果如图2;单击“查询全部”按钮,查询得到全部记录,并将结果打印出来,如图3;单击“删除”按钮,删除指定记录,如图4;单击“修改”按钮,修改指定记录,如图5。 图3
图4 图5 二、知识链接 (4)ContentValues类 ● ContentValues类和Hashtable类较为相似,它用于存储一些键值对,可以被ContentResolver类处理,但是它存储的键值对当中的键是一个String类型,而值都是基本类型。ContentValues类作为一个重要的参数在SQLiteDatabase中的insert,update等方法中使用。 ● ContentValues类有3种构造方法,格式分别如下: √ ContentValues(:使用默认的初始大小来创建一个空集。 √ ContentValues(int size):使用指定的初始大小size值来创建一个空集。 √ ContentValues(ContentValues from):复制给定的集合from,用于创建一组集合数值。 ● ContentValues类的常用方法介绍如下:
√ void clear(:清空集合中的所有数值。 √ boolean containsKey(String key):如果集合中包含了指定的关键字key,则返回true,否则返回false。 √ Object get(String key):返回关键字key对应的数值,返回数值类型为Object,通常还需要进行强制类型转换。 √ void put(String key,Integer value):将一个值加入到集合中,其中参数key表示集合中的关键字;参数value表示要添加的数据。ContentValues类还有很多put方法,主要的区别是第二个参数为其他数据类型,例如:put(String key,Byte value)、put(String key,Float value)、put(String key,Short value)、put(String key,byte[] value) √ void remove(String key):将某个关键字key的数值从集合中删除。 √ int size (:返回集合中数值的个数。 三、案例实现 (1)MainActivity.java中添加数据的方法 /** * 添加一条记录 */ public void add(View view { Random random=new Random(; SQLiteDatabase db=personHelper.getWritableDatabase(; //db.execSQL("insert into info(name,phone values(?,?",new Object[]{"张三"+random.nextInt(100,"186********"}; ContentValues values=new ContentValues(; values.put("name", "张三"+random.nextInt(100; values.put("phone", "186775411"+random.nextInt(100;
学生信息的增删改查(java)
学生信息的增删改查 注意:此处用到的是access数据库。 运行后效果如图: 代码如下: package example; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import java.sql.*; import java.util.Vector; class myrandom extends JFrame implements ActionListener{ //这个程序的数据是没有写入文件的 JFrame f1,f2; JButton b1,b2,b3,b4,modify,direction; JLabel a1; JTextField t1,t2,t3,t4; JTable table; myrandom(){ table=new JTable(); f1=new JFrame("学生信息系统"); f1.setVisible(true);//设置窗体可见 a1=new JLabel("输入学号:"); t1=new JTextField(100); t2=new JTextField(100); b1=new JButton("查姓名:"); b2=new JButton("插入信息"); b3=new JButton("查看数据");
b4=new JButton("删除"); t3=new JTextField(100); modify=new JButton("修改"); direction=new JButton("操作说明"); t4=new JTextField(100); f1.setLayout(new GridLayout(6,2));//设置窗体的分布为四行二列 f1.add(a1);f1.add(t1);//加入窗体 f1.add(b1);f1.add(t2); f1.add(b2);f1.add(b3); f1.add(b4);f1.add(t3); f1.add(modify);f1.add(t4); f1.add(direction); f1.setSize(200,200);//设置窗体大小 b1.addActionListener(this); b2.addActionListener(this);//设置按钮事件 b3.addActionListener(this); b4.addActionListener(this); modify.addActionListener(this); direction.addActionListener(this); } public void actionPerformed(ActionEvent e) { f1.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//关闭窗体后释放资源,若不写这条语句, //则虽然关闭了窗体,但进程还在运行。 try{//这个try是在整个action中的,用于捕获建立连接异常 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String dburl="jdbc:odbc:mydb"; //mydb是我建立的access 数据源 Connection conn=DriverManager.getConnection(dburl);//这四条语句是用来在整个action事件中建立连接的 Statement stml=conn.createStatement(); //也就不用在每一个button事件(b1,b2,b3,b4)中重复写这四条语句 //以上四条语句也可以改写为下面这四条语句: // String dburl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\db1.mdb"; // Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // Connection conn = DriverManager.getConnection(dburl); // Statement stml = conn.createStatement(); if(e.getSource()==b3){//查看数据(查看数据库中student表的所有信息
(完整word版)SQL常用的增删改查语句、视屏笔记
SQL:结构化查询语言,是国际化标准组织采纳的标准数据库语言 作用:数据库管理员可以用利用次语言操作数据库系统,即:SQL是一种能够被数据库系统读懂的操作语言。 T—SQL是微软公司针对SQL Server这种关系数据库所定义的一种SQL语言,用户可以完成Server数据库中的所有操作。 SQL的分类: (1):数据定义语言,DDL 用来创建数据库和数据库中的各种对象 数据库中的对象包括:表、视图、索引、存储过程、触发器 DDL常用的命令包括:create、alter、drop (2):数据操纵语言,DML 可以完成对数据库中数据的查询、更新、删除、插入的功能 DML常用的命令包括:select、update、delete、insert (3)数据控制语言,DCL DCL常用的命令包括:grant、revoke、deny (4)数据类型 1、数字数据类型 a、整型数据类型:bigint、int、smallint、tinyint b、浮点数据类型:float、real c、固定精度数据类型:decimal、numeric d、货币数据类型:money、smallmoney 将数据格式转换成字符串方法:STR(ID);---ID为数据类型,STR(ID)为字符串 2、字符数据类型:varchar、char、text、nchar、nvarchar、ntext 区别char和varchar数据类型: char数据类型是存放固定长度的字符 Varchar数据类型是存放动态长度的字符 char(14),实际放入到数据库的字符长度为14个字符,如果实际存储的长度小于定义的长度,那么数据库会在次字符串后面加上3个空格 1、insert语句: insert语句是属于SQL语言中的DML 作用:为表插入数据 你向一个表中插入一条新记录,但有一个字段没有提供数据。在这种情况下,有下面的四种可能: 1、如果该字段有一个缺省值(默认值),该值会被使用。 2、如果该字段可以接受空值,而且没有缺省值,则会被插入空值。 3、如果该字段不能接受空值,而且没有缺省值,就会出现错误。你会收到错误信息: The column in table mytable may not be null. 4、如果该字段是一个标识字段,那么它会自动产生一个新值。当你向一个有标识字段的表中插入新记录时,只要忽略该字段,标识字段会给自己赋一个新值。 使用INSERT语句可向文本型字段中插入数据。但是,如果你需要输入很长的字符串,你应该使用WRITETEXT语句。 语法:insert into 表名(列名1,列名2,…..) values(值1,值2,….) 注意:(列名1,列名2,…..)可以不写,这样的话,插入的values(值1,值2,….)中的值必须包含表中的所有列,不然会报错。