Java程序操作Oracle数据库,的增,删,改,查所有,按ID查,按条件查的封装类及测试数据的方法
//这是一个学生类
package entity;
public class NewStudent {
private String id;
private String name;
private String sex;
private int age;
private int minAge=-1;
private int maxAge=-1;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
https://www.doczj.com/doc/a110268146.html, = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getMinAge() {
return minAge;
}
public void setMinAge(int minAge) {
this.minAge = minAge;
}
public int getMaxAge() {
return maxAge;
}
public void setMaxAge(int maxAge) {
this.maxAge = maxAge;
}
}
//这是封装好的用于连接和关闭Oracle数据库的类
package dao;
import java.sql.*;
public class BaseDao {
//1、------连接Oracle数据库操作
public static Connection getConnection()throws Exception{ Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL";
return DriverManager.getConnection(url, "SCOTT", "admin");
}
//2、------关闭Oracle数据库操作
public static void close(ResultSet rs,Statement sta,Connection con) throws Exception{
if(rs!=null){
rs.close();
}
if(sta!=null){
sta.close();
}
if(con!=null){
con.close();
}
}
}
/**
* 1、专门针对NewStudent表操作的数据访问类
* 2、最常见的六大方法
* 3、增,删,改,查所有,按ID查,按条件查。
* @author NO13
*
*/
package dao;
import java.sql.*;
import entity.*;
import java.util.*;
public class NewStudentDao {
//1、------插入数据的方法
public boolean save(NewStudent obj){
Connection con = null;
//预编译操作句柄
PreparedStatement psta = null;
boolean flag = false;
//SQL语句
String sql = "insert into newstudent values('stu_'||sq_newstu.nextval,?,?,?)";
try{
con = BaseDao.getConnection();
//将SQL语句传入进行预编译
psta = con.prepareStatement(sql);
//SQL语句里面的???在以下将用对象的里面的属性替换掉
psta.setString(1, obj.getName());
psta.setString(2, obj.getSex());
psta.setInt(3, obj.getAge());
//判断SQL语句是否执行成功
flag = psta.executeUpdate()>0;
}catch(Exception e){
e.printStackTrace();
}finally{
try{
//关闭连接
BaseDao.close(null, psta, con);
}catch(Exception e){
e.printStackTrace();
}
return flag;
}
}
//2、------修改数据的方法
public boolean update(NewStudent obj){
Connection con = null;
PreparedStatement psta = null;
boolean flag = false;
String sql = "update newstudent set name=?,sex=?,age=? where id=?";
try{
con = BaseDao.getConnection();
//将SQL语句传入进行预编译
psta = con.prepareStatement(sql);
//SQL语句里面的???在以下将用对象的里面的属性替换掉
psta.setString(1, obj.getName());
psta.setString(2, obj.getSex());
psta.setInt(3, obj.getAge());
psta.setString(4, obj.getId());
//判断SQL语句是否执行成功
flag = psta.executeUpdate()>0;
}catch(Exception e){
e.printStackTrace();
}finally{
try{
BaseDao.close(null, psta, con);
}catch(Exception e){
e.printStackTrace();
}
return flag;
}
}
//3、------删除数据的方法
public boolean remove(String id){
Connection con = null;
PreparedStatement psta = null;
boolean flag = false;
String sql = "delete from newstudent where id = ?";
try{
con = BaseDao.getConnection();
psta = con.prepareStatement(sql);
psta.setString(1, id);
flag = psta.executeUpdate()>0;
}catch(Exception e){
e.printStackTrace();
}finally{
try{
BaseDao.close(null, psta, con);
}catch(Exception e){
e.printStackTrace();
}
return flag;
}
}
//4、---*---查询所有数据的方法
public ArrayList findAll(){
Connection con = null;
PreparedStatement psta = null;
ResultSet rs = null;
String sql = "select * from newstudent";
ArrayList list = new ArrayList();
try{
con = BaseDao.getConnection();
psta = con.prepareStatement(sql);
rs = psta.executeQuery();
while(rs.next()){
NewStudent obj = new NewStudent();
obj.setId(rs.getString(1));
obj.setName(rs.getString(2));
obj.setSex(rs.getString(3));
obj.setAge(rs.getInt(4));
list.add(obj);
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
//关闭Oracle连接
BaseDao.close(rs, psta, con);
}catch(Exception e){
e.printStackTrace();
}
return list;
}
}
//5、---**---按ID查询数据的方法
public NewStudent findById(String id){
Connection con = null;
PreparedStatement psta = null;
ResultSet rs = null;
String sql = "select * from newstudent where id = ?";
NewStudent obj = null;
try{
con = BaseDao.getConnection();
psta = con.prepareStatement(sql);
psta.setString(1, id);
rs = psta.executeQuery();
if(rs.next()){
obj = new NewStudent();
obj.setId(rs.getString(1));
obj.setName(rs.getString(2));
obj.setSex(rs.getString(3));
obj.setAge(rs.getInt(4));
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
BaseDao.close(rs, psta, con);
}catch(Exception e){
e.printStackTrace();
}
return obj;
}
}
//6、---***---按条件查询数据的方法
public ArrayList findByWhere(NewStudent param){ Connection con = null;
PreparedStatement psta = null;
ResultSet rs = null;
ArrayList list = new ArrayList();
ArrayList params = new ArrayList();
String sql = "select * from newstudent where 1=1";
if(param.getId()!=null){
sql = sql + " and id=?";
params.add(param.getId());
}
if(param.getName()!=null){
sql = sql + " and name like ?";
params.add("%"+param.getName()+"%");
}
if(param.getSex()!=null){
sql = sql + " and sex=?";
params.add(param.getSex());
}
if(param.getMinAge()!=-1){
sql = sql + " and age>=?";
params.add(param.getMinAge());
}
if(param.getMaxAge()!=-1){
sql = sql + " and age<=?";
params.add(param.getMaxAge());
}
try{
con = BaseDao.getConnection();
psta = con.prepareStatement(sql);
for(int i = 0;i psta.setString(i+1, params.get(i).toString()); } rs = psta.executeQuery(); while(rs.next()){ NewStudent obj = new NewStudent(); obj.setId(rs.getString(1)); obj.setName(rs.getString(2)); obj.setSex(rs.getString(3)); obj.setAge(rs.getInt(4)); list.add(obj); } }catch(Exception e){ e.printStackTrace(); }finally{ try{ BaseDao.close(rs, psta, con); }catch(Exception e){ e.printStackTrace(); } return list; } } } //这个一个用于测试以上方法的main方法主程序 package dao; import java.util.*; import entity.NewStudent; public class test { public static void main(String[] args) { Scanner input = new Scanner(System.in); NewStudentDao newstu = new NewStudentDao(); //查询所有 ArrayList list = newstu.findAll(); System.out.println("<<-----1、查询所有的方法----->>"); for(int i = 0;i NewStudent student = (NewStudent)list.get(i); System.out.println(student.getId()+"\t"+student.getName()+" \t"+student.getSex()+"\t"+student.getAge()); } System.out.println("<<-----2、根据ID查询方法----->>"); NewStudent stu = newstu.findById("stu_4"); System.out.print(stu.getId()+"\t"+stu.getName()+"\t"+stu.ge tSex()+"\t"+stu.getAge()); System.out.println(); System.out.println("<<-----3、插入数据的方法----->>"); NewStudent stus = new NewStudent(); stus.setName("雪儿"); stus.setSex("女"); stus.setAge(19); newstu.save(stus); System.out.println("数据插入中..."); System.out.println("---数据插入成功!---"); System.out.println("<<-----4、修改数据的方法----->>"); NewStudent stus1 = new NewStudent(); stus1.setId("stu_2"); stus1.setName("美婷"); stus1.setSex("女"); stus1.setAge(17); newstu.update(stus1); System.out.println("数据修改中..."); System.out.println("---数据修改成功!---"); System.out.println("<<-----5、删除数据的方法----->>"); boolean flag = newstu.remove("stu_10"); if(flag == true){ System.out.println("数据删除中..."); System.out.println("数据删除成功!"); }else{ System.out.println("数据删除中..."); System.out.println("数据删除失败!"); } System.out.println("<<-----6、条件查询数据的方法----->>"); NewStudent stu3 = new NewStudent(); stu3.setName("王婷"); ArrayList lists = newstu.findByWhere(stu3); for(int i = 0;i NewStudent students = (NewStudent)lists.get(i); System.out.println(students.getId()+"\t"+students.getName() +"\t"+students.getSex()+"\t"+students.getAge()); } } } //这个最终运行后的结果 <<-----1、查询所有的方法----->> stu_15 永邦男35 stu_16 永邦男35 stu_17 永邦男35 stu_1 张三男18 stu_2 李斯女17 stu_3 王婷女18 stu_4 张三男19 stu_5 恬恬女20 stu_6 米琪女24 stu_7 艾米女23 stu_8 小白男32 stu_9 小白男32 stu_14 小闵女25 stu_11 小白男32 stu_12 书全男33 stu_13 小闵女25 stu_18 永邦男35 stu_19 永邦男35 stu_20 永邦男35 <<-----2、根据ID查询方法----->> stu_4 张三男19 <<-----3、插入数据的方法----->> 数据插入中... ---数据插入成功!--- <<-----4、修改数据的方法----->> 数据修改中... ---数据修改成功!--- <<-----5、删除数据的方法----->> 数据删除中... 数据删除失败! <<-----6、条件查询数据的方法----->> stu_3 王婷女18 学习收藏数据库增删改查 --查询信息系和计算机系的学生,并按学生所在系和学号排序。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.doczj.com/doc/a110268146.html,o=https://www.doczj.com/doc/a110268146.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 JDBC Java中JDBC定义了java与各种sql数据库之间的编程接口,JDBC API是一个统一的标准应用程序编程接口,这样可以屏蔽异种数据库之间的差异。 JDBC的工作原理 JDBC与ODBC(OpenData Base Connectivity,开放式数据库连接)的作用非常类似,它在应用程序和数据库之间起到了桥梁的作用。ODBC使用的特别广泛,在java中还提供了JDBC-ODBC桥,能够在JDBC与ODBC之间进行转换,这样可以通过ODBC屏蔽不同种数据库之间的差异。在JDK的包java.sql.*中定义了一系列的类、接口、异常以及这些类和接口中定义的属性和方法,java的开发人员通过一定的规则调用java.sql.*中的API就可以实现对数据库管理系统的访问。 JDBC的四种驱动 1.JDBC-ODBC Bridge JDBC-ODBC Bridge可以访问一个ODBC数据源,但在执行Java程序的机器上必须安装ODBC驱动,并作出配置,它的调用方式如下图: 因为中间有个JDBC-ODBC,所以影响了执行效率。 配置ODBC数据源的方法如下(以Mysql为例): 第一步,打开控制面板—>管理工具--->数据源(ODBC) 选择系统DSN,这一项默认应该是空的,我这里是已经配置好了一个数据源。 第二步,点击添加 第三步,选择Mysql的ODBC驱动,点击完成。 注:MySQL的ODBC驱动在系统中一般是找不到的,因为它不是系统默认自带的驱动,所以,我们要自己安装我们所需要的MySQL的ODBC驱动。安装步骤如下: ①.下载安装包,https://www.doczj.com/doc/a110268146.html,/downloads/connector/odbc/ ②.我们下载与自己系统相应的ODBC驱动 这里我们选择 数据库增删改查基本语句 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.doczj.com/doc/a110268146.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开发中JDBC连接数据库代码和步骤 JDBC连接数据库 ?创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过https://www.doczj.com/doc/a110268146.html,ng.Class类的静态方法forName(String className)实现。 例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ; }catch(ClassNotFoundException e){ System.out.println("找不到驱动程序类,加载驱动失败!"); e.printStackTrace() ; } 成功加载后,会将Driver类的实例注册到DriverManager类中。 2、提供JDBC连接的URL ?连接URL定义了连接数据库时的协议、子协议、数据源标识。 ?书写形式:协议:子协议:数据源标识 协议:在JDBC中总是以jdbc开始 子协议:是桥连接的驱动程序或是数据库管理系统名称。 数据源标识:标记找到数据库来源的地址与连接端口。 例如:(MySql的连接URL) jdbc:mysql: //localhost:3306/test?useUnicode=true&characterEncoding=gbk ; useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为 gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。 3、创建数据库的连接 ?要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。 ?使用DriverManager的getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。 例如: //连接MySql数据库,用户名和密码都是root String url = "jdbc:mysql://localhost:3306/test" ; String username = "root" ; String password = "root" ; try{ Connection con = DriverManager.getConnection(url , username , password ) ; }catch(SQLException se){ System.out.println("数据库连接失败!"); se.printStackTrace() ; } 一、增:有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平时最常用的7种数据库连接方式,现在分享给大家 MySQL: String Driver="com.mysql.jdbc.Driver"; //驱动程序 String URL="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name 为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); Connection con=DriverManager.getConnection(URL,Username,Password); Microsoft SQL Server: 1) String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //连接SQL数据库的方法 String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); //加载数据可驱动 Connection con=DriverManager.getConnection(URL,UserName,Password); // 2) String Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; //连接SQL数据库的方法 String URL="jdbc:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); //加载数据可驱动 Connection con=DriverManager.getConnection(URL,UserName,Password); Sysbase: String Driver="com.sybase.jdbc.SybDriver"; //驱动程序 String URL="jdbc:Sysbase://localhost:5007/db_name"; //db_name为数据可名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).newInstance(); Connection con=DriverManager.getConnection(URL,Username,Password); Oracle(用thin模式): String Driver="oracle.jdbc.driver.OracleDriver"; //连接数据库的方法String URL="jdbc:oracle:thin:@loaclhost:1521:orcl"; //orcl为数据库的SID String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).newInstance(); //加载数据库驱动 一、问题引入 在java程序中,需要访问数据库,做增删改查等相关操作。如何访问数据库,做数据库的相关操作呢? 二、Java连接数据库方法概述 java.sql提供了一些接口和类,用于支持数据库增删改查等相关的操作。该jar包定义了java访问各种不同数据库(mysql,oracle,sqlserver。。。。。)的统一接口和标准。同时,各个数据库厂商都提供了该jar包中定义的各个接口的实现类,用于具体实现本厂数据库的增删改查操作,即称之为“数据库驱动jdbc driver”。例如mysql的数据库驱动为:com.mysql.jdbc.driver;oracle的数据库驱动为:oracle.jdbc.driver.oracledriver。在java程序中访问数据库,做数据库连接时,可以采用两种方式: 1、使用java.sql API 利用该包提供的各种接口和类直接访问数据库。 例子: 2、使用数据库连接池 目前存在多个开源的java数据库连接池,这些连接池都是在java.sql基础上编写而成。 该连接池的解决的问题是: 当使用java.sql中提供的api创建数据库连接时候,需要耗费很大的资源,要进 行用户名密码数据库连接验证等,即耗费资源也耗费时间。如果在程序中,每次需 要访问数据库时候,都进行数据库连接,那么势必会造成性能低下;同时,如果用 户失误忘记释放数据库连接,会导致资源的浪费等。而数据库连接池就是解决该问 题,通过管理连接池中的多个连接对象(connection),实现connection重复利用。 从而,大大提高了数据库连接方面的性能。 该连接池的功能是: 负责创建,管理,释放,分配数据库连接即(connection)。首先,负责创建相应 数目的数据库连接对象(connection)对象,并存放到数据库连接池(connect pool)中。当用户请求数据库连接时,该连接池负责分配某个处于空闲状态的数据库连接 对象;当用户发出释放该数据库连接时,该连接池负责将该连接对象重新设置为空 Java连接数据库全过程 第一次用java连接数据库,开始竟然不知道从哪里下手,后看了很多书,请教了很多高手,忙了一天才连接上,所以我把这个详细的过程整理出来贡献给大家,不当的地方,希望大家告诉我,一定更正。 要准备的软件: 1.操作系统:windows xp或其他系统; 2.java运行环境:JDK 官方下载网址:https://www.doczj.com/doc/a110268146.html,/javase/downloads/index.jsp 3.数据库:SQL server 2000; 下面是java连接数据库需要更新的东西,不然连不上的: 1安装SQL SP3补丁:“SQLSERVER2000SP3补丁.exe”,和普通的程序安装一样。 2.把3个jar包:“msbase.jar”,“mssqlserver.jar”,“msutil.jar”加到classpath中,具体的安装方法我已经详细整理:“Java连接数据库配置——加载jar包”。 Java连接数据库的核心程序文件:"TestConnect.java"如下 //TestConnect.java import java.sql.*; public class TestConnect { private Connection con=null;//Connection:与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。 String dbDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";//声明数据库驱动名(这个是微软的驱动名) //String dbDriver="sun.jdbc.odbc.JdbcOdbcDriver";//sun驱动程序名 //String dbUrl="jdbc:odbc:lhs"; String dbUrl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=lhs";//数据库驱动程序URL,和相应的驱动配套。 String dbUser="sa";//定义数据库登陆用户名 String dbPasw="123";//定义相应用户的登陆密码 //创建数据库连接 public void connect() 这是连接后进行一些简单操作后的结果: Succeeded connecting to the Database! 学号姓名 2011001 张三 2011002 李四 2011003 王五 先去下载MySql并安装好。安装MySql的方法在 https://www.doczj.com/doc/a110268146.html,/view/9cc0fcc76137ee06eff918d5.html 然后下载jdbc驱动。 https://www.doczj.com/doc/a110268146.html,/downloads/connector/j/ 下载好了解压即可。把那个zip文件也放到解压后的目录中,方便管理使用。 我使用的是eclipse,我要导入包,先进行一些设置。 安装jre。 添加外部jar文件 打开刚才解压得到的jar文件。 打开的效果。 使用mysql创建数据库,进行测试。 mysql> use test; Database changed mysql> create table student ( -> sno char(7) not null, -> sname varchar(8) not null, -> sex char(2) not null -> ); Query OK, 0 rows affected mysql> insert into student values -> (2011001, '张三', '男'); Query OK, 1 row affected mysql> insert into student values -> (2011002, '李四', '男'); Query OK, 1 row affected mysql> insert into student values -> (2011003 , '王五', '男'); Query OK, 1 row affected mysql> select * from student; +---------+-------+-----+ | sno | sname | sex | +---------+-------+-----+ | 2011001 | 张三| 男| | 2011002 | 李四| 男| | 2011003 | 王五| 男| +---------+-------+-----+ 3 rows in set mysql> 编码测试。 输入下面源代码: import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCTest { public static void main(String[] args){ try { // 加载驱动程序 Class.forName("com.mysql.jdbc.Driver"); // URL指向要访问的数据库名test String url = "jdbc:mysql://127.0.0.1:3306/test"; // MySQL配置时的用户名 String user = "root"; 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(; 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,'尹当')--同上 此文中的代码主要列出连接数据库的关键代码,其他访问数据库代码省略 1、Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID String user="test"; String password="test"; Connection conn= DriverManager.getConnection(url,user,password); 2、DB2数据库 Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名 String user="admin"; String password=""; Connection conn= DriverManager.getConnection(url,user,password); 3、Sql Server7.0/2000数据库 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance (); String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"; //mydb为数据库 String user="sa"; String password=""; Connection conn= DriverManager.getConnection(url,user,password); 4、Sybase数据库 Class.forName("com.sybase.jdbc.SybDriver").newInstance(); String url =" jdbc:sybase:Tds:localhost:5007/myDB"; //myDB为你的数据库名 Properties sysProps = System.getProperties(); SysProps.put("user","userid"); SysProps.put("password","user_password"); Connection conn= DriverManager.getConnection(url, SysProps); 5、Informix数据库 Class.forName("https://www.doczj.com/doc/a110268146.html,rmix.jdbc.IfxDriver").newInstance(); String url = "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver; user=testuser;password=testpassword"; //myDB为数据库名 Connection conn= DriverManager.getConnection(url); 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()//显示系统日期 数据库增删改查操作(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; 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,….)中的值必须包含表中的所有列,不然会报错。 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; 刷新数据库 三,数据库简单操作数据库的增删改查(精)
Java中连接MySql数据库的几种方法
数据库增删改查基本语句
完整java连接数据库步骤
SQL数据库中的增删改查总结1
java平时最常用的7种数据库连接方式
java数据库连接方法
Java连接数据库全过程
Java连接MySql数据库入门操作
JAVA数据库基本操作增删改查(精)
数据库增删改查
java连接到各种数据库的方法
SQL常用增删改查语句
数据库增删改查操作(2)(精)
(完整word版)SQL常用的增删改查语句、视屏笔记
数据库语句增删改查