`

完整的JDBC 简单列子

阅读更多
package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class DBConnection {
private static final String DBDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String DBURL  = "jdbc:sqlserver://localhost:1433;databaseName=study";
private static final String DBUSER = "sa";//用户名
private static final String PASSWORD = "woai5jia";//密码
static {
try {
Class.forName(DBDRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection(){
try {
return DriverManager.getConnection(DBURL,DBUSER,PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}
package dao;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import entity.User;

public class UserDAO {

/*查看表的相关信息*/
public void findColumnInfo(){
Connection con = DBConnection.getConnection();
PreparedStatement ps =null;
String sql = "select * from userinfo";
ResultSet rs ;
try {
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
ResultSetMetaData rd = rs.getMetaData();
int len = rd.getColumnCount();
for(int i=1;i<=len;i++){
System.out.print("列名"+rd.getColumnName(i)+"  ");
System.out.println("类型"+rd.getColumnTypeName(i));
}
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/*查找一个表中的多行记录*/
public List<User> findUsers(int startIndex,int number){
if(number<=0){
return null;
}
Connection con = DBConnection.getConnection();
PreparedStatement ps = null;
String sql = "select * from userinfo";
try {
ps = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = ps.executeQuery();
if (! rs.absolute(startIndex)) {
return null;
}
List<User> users = new ArrayList<User>(number);
do{
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setPassword(rs.getString("password"));
users.add(user);
}while(rs.next() && --number>0);
rs.last();
System.out.println(rs.getRow());//计算总行数
rs.close();//最后要把流关闭
return users;
}catch (SQLException e) {
e.printStackTrace();
} finally {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
/*通过组号来查找用户*/
public static List<User> findUsersByGno(int gno){
Connection con = DBConnection.getConnection();
String sql = "select * from userinfo where gno=?";
PreparedStatement ps = null;
try {
ps = con.prepareStatement(sql);
ps.setInt(1, gno);
ResultSet rs = ps.executeQuery();
boolean result = rs.next();
if (!result) {
return null;
}
List<User> users = new ArrayList<User>();
do{
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setPassword(rs.getString("password"));
user.setGno(rs.getInt("gno"));
users.add(user);
}while(rs.next() && users.size()>0);
return users;
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
/*向表中增加一行数据即一个对象*/
public void addUser(User user){
Connection con = DBConnection.getConnection();
PreparedStatement ps = null;
String sql = "insert into userinfo values(?,?)";
try {
ps = con.prepareStatement(sql);
ps.setString(1, user.getName());
ps.setString(2,user.getPassword());
ps.execute();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/*通过某一列的属性查找该对象*/
public User findUserById(int id) {
Connection con = DBConnection.getConnection();
PreparedStatement ps =null;
String sql = "select * from userinfo where id=?";
try {
ps = con.prepareStatement(sql);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
boolean result = rs.next();
if (!result) {
return null;
}
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setPassword(rs.getString("password"));
return user;
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}

/*根据id来修改该对象的信息*/
public void updateUserById(String name,String password,int id){
Connection con = DBConnection.getConnection();
String sql = "update userinfo set name=?,password=? where id=?";
PreparedStatement ps = null;
try {
ps = con.prepareStatement(sql);
ps.setString(1,name);
ps.setString(2,password);
ps.setInt(3,id);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

public void deleteUserById(int id){
Connection con = DBConnection.getConnection();
String sql = "delete from userinfo where id =?";
PreparedStatement ps = null;
try {
ps = con.prepareStatement(sql);
ps.setInt(1,id);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String args[]) {
User user=new UserDAO().findUserById(1);
System.out.println(user);
}
}
分享到:
评论

相关推荐

    mariadb jdbc(连接列子有jar包)

    以下是一个简单的示例: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class MariadbConnectionExample { public static void main(String[] ...

    java&JDBC&hibernate&WEB等程序的一些小列子

    在这个"java&JDBC&hibernate&WEB等程序的一些小列子"中,你可能会发现一些基本的示例,比如使用Java进行简单的数据库操作(通过JDBC),或者使用Hibernate来创建实体并执行CRUD操作。此外,还可能包含使用Servlets或...

    mybatis学习小列子

    MyBatis是一个强大的Java持久层框架,它简化了数据库与Java代码之间的交互,使得开发者能够更专注于SQL的编写,而不必被JDBC的繁琐细节所困扰。本教程针对初次接触MyBatis的学习者,旨在帮助你快速理解并上手这个...

    JSF+Spring+Hibernate简单列子

    Spring还提供了对数据库操作的支持,如Spring JDBC和Spring Data JPA,以及Spring MVC,一个用于构建Web应用程序的模块,可以与JSF集成。Spring MVC遵循类似的MVC架构,提供控制器、模型和视图的分离,让开发者可以...

    jdbc连接数据库的方式2

    与此类似的任务可以通过在set子句中使用多列子查询而在一个UPDATE命令中完成。当能够在单一的SQL命令中完成任务,何必要让数据在网上流来流去的?我建议用户认真学习如何最大限度地发挥SQL的功能。 1、查找驱动...

    flex+java列子

    这可能是一个简单的JDBC连接,或者是Spring、Hibernate等框架的实现,用于处理数据访问层。 4. **Flex与Java的通信**: Flex应用通常通过HTTP或WebSocket与Java服务器进行通信。Flex客户端通过发送HTTP请求到服务器...

    java数据库初学列子

    1. **引入JDBC驱动**:首先,确保你的项目中包含了SQL Server的JDBC驱动,通常为`mssql-jdbc.jar`。你可以通过Maven或Gradle等构建工具将其添加到你的依赖中。 2. **建立连接**:使用`java.sql.DriverManager`类的`...

    ssm+swagger2小列子

    MyBatis是一个轻量级的持久层框架,它允许开发者用简单的SQL语句来操作数据库,避免了JDBC的繁琐代码。MyBatis与Spring的集成使得事务管理和DAO层的实现更加便捷。 Swagger2则是一个强大的API文档工具,它可以自动...

    java 调用存储过程列子

    本文将详细介绍如何使用Java(通过JDBC)来调用Oracle数据库中的存储过程,并通过具体的例子来进行说明。 #### 二、存储过程简介 存储过程是在数据库中编写的SQL代码集合,它可以接收输入参数并返回输出结果。存储...

    gwt(google web toolkit) 和 spring 在一起使用列子

    - **数据访问支持**:包括JDBC、ORM(对象关系映射)框架如Hibernate和MyBatis的支持,简化数据库操作。 3. **GWT 与 Spring 的整合** - **Spring-GWT-RPC**:GWT的Remote Procedure Call (RPC)机制可以与Spring...

    网络信息采集系统(java版)

    网络信息采集系统采用struts2+JDBC方式实现,这是个人写的一个简单列子,网页并未进行优化,具体实现指定网页进行信息抓取功能,支持多页抓取、多模块抓取,此系统只是简单的功能尝试,很多不足请大家原谅。...

    Echarts+ajax+java+mysql实现饼图+折线图+柱状图-Java代码类资源

    它提供了一套完整的图表类型,包括但不限于折线图、柱状图、饼图、散点图、K线图等,并支持自定义交互和动画效果,使数据展现更加直观生动。 2. **AJAX(Asynchronous JavaScript and XML)**:AJAX是一种在无需...

    2021年最新java面试题--视频讲解(内部培训84个知识点超详细).rar

    写一个jdbc的访问oracle的列子 Java面试题34.jdbc中preparedStatement比Statement的好处 Java面试题35.数据库连接池的作用 Java面试题36.HTML Java面试题37.简单介绍了一下Ajax Java面试题38.js和JQuery的关系 Java...

    H2Database内存数据库

    以下是一个简单的H2Database Java代码示例,演示如何连接内存数据库、创建表、插入数据和查询数据: ```java import org.h2.Driver; import java.sql.Connection; import java.sql.DriverManager; import java.sql....

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    写一个jdbc的访问oracle的列子.mp4 │ Java面试题34.jdbc中preparedStatement比Statement的好处.mp4 │ Java面试题35.数据库连接池的作用.mp4 │ Java面试题36.HTML.mp4 │ Java面试题37.简单介绍了一下Ajax.mp4 │ ...

    Oracle数据库学习日记

    #### 五、简单表查询 ##### 5.1 查询表的结构 - **查询表结构**: 使用 `describe` 命令。 - 示例: `describe employees;` ##### 5.2 查询表的指定列和所有列 - **查询所有列**: 使用 `select * from table_name...

    JSTL相关资料 需要得拿走。

    5. **JDBC**:这个库允许在JSP页面中执行数据库查询和操作,简化了数据库访问。 在实际应用中,JSTL与EL(Expression Language)结合使用,EL负责表达式计算,而JSTL负责控制逻辑和显示。例如,`&lt;c:forEach&gt;`标签...

Global site tag (gtag.js) - Google Analytics