700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 通过JDBC实现对Oracle mysql数据库的增删改查 模糊查询 查询全部 根据ID查询 分

通过JDBC实现对Oracle mysql数据库的增删改查 模糊查询 查询全部 根据ID查询 分

时间:2023-06-09 09:31:21

相关推荐

通过JDBC实现对Oracle mysql数据库的增删改查 模糊查询 查询全部 根据ID查询 分

首先,需要了解一些连接Oracle的基础的知识

jdbc:oracle:thin:@localhost:1521:orcl是java程序通过jdbc连接oracle数据库的一种方式。

解释:

jdbc:代表以jdbc的方式连接;

oracle:表示连接的是oracle数据库;

thin:表示连接时采用thin模式(oracle中有两种模式);

@表示地址;

localhost:1521:orcl中localhost代表本地数据库,1521代表本地数据库端口号,orcl代表本地数据库的sid。sid一般和数据库名称一样

关于thin的解释:

thin是一种瘦客户端的连接方式,即采用这种连接方式不需要安装oracle客户端,只要求classpath中包含jdbc驱动的jar包就行。

thin就是纯粹用Java写的ORACLE数据库访问接口。

oci是一种胖客户端的连接方式,即采用这种连接方式需要安装oracle客户端。oci是Oracle

Call

Interface的首字母缩写,是ORACLE公司提供了访问接口,就是使用Java来调用本机的Oracle客户端,然后再访问数据库,优点是速度

快,但是需要安装和配置数据库。

1 查询全部

public class Test {

/**

* 下面基本上是固定的一些代码(本例并未建立数据库)

* @param args

* @throws Exception

*/

public static final String DBDRIVER="oracle.jdbc.driver.OracleDriver";

public static final String DBURL="jdbc:oracle:thin:@localhost:1521:oracl";//mldn好像是本机名称

public static final String DBUSER="scott";

public static final String DBPASSWORD="tiger";

public static void main(String[] args) throws Exception {

Class.forName(DBDRIVER);

Connection conn=DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);

String sql=" select mid,name,age,birthday,note from member ";

PreparedStatement ps=conn.prepareStatement(sql);

ResultSet rs=ps.executeQuery();

while(rs.next())

{

int mid=rs.getInt(1);

String name=rs.getString(2);

int age=rs.getInt(3);

Date birthday=rs.getDate(4);

String note=rs.getString(5);

System.out.println(mid+","+name+","+age+","+birthday+","+note);

}

}

}

2 根据ID查询

public class Test {

/**

* 下面基本上是固定的一些代码(本例并未建立数据库)

* @param args

* @throws Exception

*/

public static final String DBDRIVER="oracle.jdbc.driver.OracleDriver";

public static final String DBURL="jdbc:oracle:thin:@localhost:1521:DESKTOP-VV9FH43";//mldn好像是本机名称

public static final String DBUSER="scott";

public static final String DBPASSWORD="tiger";

public static void main(String[] args) throws Exception {

Class.forName(DBDRIVER);

Connection conn=DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);

String sql=" select mid,name,age,birthday,note from member where mid=? ";

PreparedStatement ps=conn.prepareStatement(sql);

ps.setInt(1, 50);//给第一占位符赋值50

ResultSet rs=ps.executeQuery();

while(rs.next())

{

int mid=rs.getInt(1);

String name=rs.getString(2);

int age=rs.getInt(3);

Date birthday=rs.getDate(4);

String note=rs.getString(5);

System.out.println(mid+","+name+","+age+","+birthday+","+note);

}

}

}

3根据模糊查询

public class Test {

/**

* 下面基本上是固定的一些代码(本例并未建立数据库)

* @param args

* @throws Exception

*/

public static final String DBDRIVER="oracle.jdbc.driver.OracleDriver";

public static final String DBURL="jdbc:oracle:thin:@localhost:1521:DESKTOP-VV9FH43";//mldn好像是本机名称

public static final String DBUSER="scott";

public static final String DBPASSWORD="tiger";

public static void main(String[] args) throws Exception {

String column="name";//在name列上进行模糊查询

String keyWord="李";//关键字

Class.forName(DBDRIVER);

Connection conn=DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);

//一定注意like旁边的空格,因为name like ‘%李%’;这是有空格的,所以双引号中的like也要有空格。

String sql=" select mid,name,age,birthday,note from member where"+column+" like ?";

PreparedStatement ps=conn.prepareStatement(sql);

ps.setString(1, "%"+keyWord+"%");

ResultSet rs=ps.executeQuery();

while(rs.next())

{

int mid=rs.getInt(1);

String name=rs.getString(2);

int age=rs.getInt(3);

Date birthday=rs.getDate(4);

String note=rs.getString(5);

System.out.println(mid+","+name+","+age+","+birthday+","+note);

}

}

}

4 分页查询

public class Test {

/**

* 下面基本上是固定的一些代码(本例并未建立数据库)

* @param args

* @throws Exception

*/

public static final String DBDRIVER="oracle.jdbc.driver.OracleDriver";

public static final String DBURL="jdbc:oracle:thin:@localhost:1521:DESKTOP-VV9FH43";//mldn好像是本机名称

public static final String DBUSER="scott";

public static final String DBPASSWORD="tiger";

public static void main(String[] args) throws Exception {

int currentPage=1;//当前在第一页

int lineSize=5;//每行显示5行记录

String column="name";//在name列上进行模糊查询

String keyWord="李";//关键字

Class.forName(DBDRIVER);

Connection conn=DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);

//一定注意like旁边的空格,因为name like ‘%李%’;这是有空格的,所以双引号中的like也要有空格。

String sql="select * from (select mid,name,age,birthday,note,rownum rn from member where"+column+" like ? and rownum<=?) temp where temp.rn>?";

PreparedStatement ps=conn.prepareStatement(sql);

ps.setString(1, "%"+keyWord+"%");

ps.setInt(2, currentPage*lineSize);//每页多少记录

ps.setInt(3, (currentPage-1)*lineSize);//当前的页数

ResultSet rs=ps.executeQuery();

while(rs.next())

{

int mid=rs.getInt(1);

String name=rs.getString(2);

int age=rs.getInt(3);

Date birthday=rs.getDate(4);

String note=rs.getString(5);

System.out.println(mid+","+name+","+age+","+birthday+","+note);

}

}

}

、MySQL用limit分页

* sql:可以是单表的查询语句,也可以是多表的联合查询语句

* pageSize:每页显示的记录数

eg: select * from (select * from Student) limit 0,20; //取1-20条数据

select * from (select * from Student) limit 20,20; //取21-40条数据

第二种 写法

select * from Student where limit (currentPage-1)*pageSize ,pageSize;

5统计查询

public class Test {

/**

* 下面基本上是固定的一些代码(本例并未建立数据库)

* @param args

* @throws Exception

*/

public static final String DBDRIVER="oracle.jdbc.driver.OracleDriver";

public static final String DBURL="jdbc:oracle:thin:@localhost:1521:DESKTOP-VV9FH43";//mldn好像是本机名称

public static final String DBUSER="scott";

public static final String DBPASSWORD="tiger";

public static void main(String[] args) throws Exception {

//int currentPage=1;//当前在第一页

//int lineSize=5;//每行显示5行记录

String column="name";//在name列上进行模糊查询

String keyWord="李";//关键字

Class.forName(DBDRIVER);

Connection conn=DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);

//一定注意like旁边的空格,因为name like ‘%李%’;这是有空格的,所以双引号中的like也要有空格。

String sql="select count(*) from member where"+column+" like ?";

PreparedStatement ps=conn.prepareStatement(sql);

ps.setString(1, "%"+keyWord+"%");

//ps.setInt(2, currentPage*lineSize);

// ps.setInt(3, (currentPage-1)*lineSize);

ResultSet rs=ps.executeQuery();

//因为count(*)只返回column这一列,所以不用循环了

if(rs.next())

{long count=rs.getLong(1);

System.out.println(count);

}

}

}

/guyong1018/article/details/2183057//这是一个对于分页查询解释很不错的连接

通过JDBC实现对Oracle mysql数据库的增删改查 模糊查询 查询全部 根据ID查询 分页查询 统计查询

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。