Java数据库操作的一些注意
练习一:插入一个学生的四六级成绩:
//课后练习
public class task3 { //添加一条数据
@Test
public void testInsert()
{
int id=1;
Scanner scanner =new Scanner(System.in);
System.out.println("四季/六级");
int type=scanner.nextInt(); System.out.println("身份证号");
String idCard = scanner.next();
System.out.println("准考证号");
String examCard=scanner.next(); System.out.println("学生姓名:");
String name=scanner.next(); System.out.println("学生成绩:");
int grade=scanner.nextInt(); String sql="insert into examstudent(flowId,type,idCard,examCard,name,Grade)values(?,?,?,?,?,?)"; //
int insertCount=update(sql,id++,type,idCard,examCard,name,grade); //根据返回值判断是否插入成功
if(insertCount>0)
{
System.out.println("插入成功");
}
else{
System.out.println("插入失败");
}
} //插入数据函数
public int update(String sql,Object ...args)
{
Connection conn=null;
PreparedStatement ps=null;
try {
conn=JDBCUtils.getConnction5(); ps=(PreparedStatement) conn.prepareStatement(sql);
for(int i=0;i<args.length;i++){
ps.setObject(i+1, args[i]);
} return ps.executeUpdate(); //返回影响了多少条数据
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
JDBCUtils.closeResource(conn, ps);
} return 0;
}
}
作业二:四六级成绩查询
@Test
public void queryWithId()
{
System.out.println("请选择您要输入的类型:");
System.out.println("a.准考证号");
System.out.println("b.身份证号");
Scanner scanner=new Scanner(System.in);
String slection =scanner.next();
if("a".equalsIgnoreCase(slection))
{
System.out.println("请输入注考证号:");
String examCard=scanner.next(); String sql="select flowId flowId,idCard IDCard,examCard examCard,name name,Grade grade from examstudent where examCard=?"; //为每个字段取别名,别名需要和Student对象中的数据类型一致
Student student=getInstance(Student.class, sql, examCard);
System.out.println(student); }else if("b".equalsIgnoreCase(slection))
{
System.out.println("请输入身份证号:");
String Idcard=scanner.next(); String sql="select flowId flowId,idCard IDCard,examCard examCard,name name,Grade grade from examstudent where examCard=?";
Student student=getInstance(Student.class, sql, Idcard); //调用通用查询接口
System.out.println(student);
}
else
{
System.out.println("您输入的数据有误,请重新输入!");
} } //通用查询的函数
public <T> T getInstance(Class<T> clazz,String sql,Object ...args){ Connection conn =null;
PreparedStatement ps=null;
ResultSet rs=null; try {
conn=JDBCUtils.getConnction5();
ps=(PreparedStatement) conn.prepareStatement(sql); for(int i=0;i<args.length;i++)
{
ps.setObject(i+1,args[i]);
} rs=ps.executeQuery(); ResultSetMetaData rsmd=(ResultSetMetaData) rs.getMetaData();
int columnCount=rsmd.getColumnCount(); if(rs.next()){
T t=clazz.newInstance(); //反射 for(int i=0;i<columnCount;i++){
Object columValue=rs.getObject(i+1);
String columnLable1=rsmd.getColumnLabel(i+1); java.lang.reflect.Field field=clazz.getDeclaredField(columnLable1);
field.setAccessible(true);
field.set(t,columValue);
} return t; }
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null; } }
Java数据库操作的一些注意的更多相关文章
- 复习java数据库操作的总结
以前学习java数据库操作,学得那叫糊里糊涂,各种JDBC常用的类和接口根本是傻傻分不清啥是干嘛的.只是套着用用吧. 不过这次好歹清楚些了,呜呜,学习有阶段性,多次重复才有好效果,多么痛的领悟. 工程 ...
- Java数据库操作
一.JDBC 1.JDBC Java数据库连接,用于Java程序中实现数据库操作功能,java.sql包中提供了执行SQL语句,访问各种数据库的方法,并为各种不同的数据库提供统一的操作接口及类. 2. ...
- Java数据库操作(MySQL与SQLserver)
在java编程开发中,数据库的开发是重头戏. MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品: SQL Server是由Microsoft开发 ...
- Java 数据库操作
目录 Java数据库组织架构 下载驱动包 连接数据库 连接数据库的三个步骤 连接数据库的高开销 Statement接口介绍 PreparedStatement类 使用PreparedStatement ...
- Java数据库操作(JDBC)
JDBC Java数据库连接(Java DataBase Connectivity,JDBC)用于在Java程序中实现数据库操作功能,它提供了执行SQL语句.访问各种数据库的方法,并为各种不同的数据库 ...
- Java数据库操作类演示
只在mysql上测试过,不知道算不算好使1. [代码][Java]代码 package org.load.demo; import java.io.IOException;import ja ...
- Java 学习笔记(16)——Java数据库操作
数据库操作是程序设计中十分重要的一个部分,Java内置JDBC来操作数据库 JDBC使用 JDBC--Java Database connecting Java数据库连接:本质上JDBC定义了操作数据 ...
- Java数据库操作学习
JDBC是java和数据库的连接,是一种规范,提供java程序与数据库的连接接口,使用户不用在意具体的数据库.JDBC类型:类型1-JDBC-ODBC桥类型2-本地API驱动类型3-网络协议驱动类型4 ...
- java数据库操作:JDBC的操作
1,JDBC注意操作类及接口: 数据库操作过程: 1)打开数据库服务 2)连接数据库:一般都要输入用户名,密码, 3)操作数据库:创建表:查询表,更新,记录. 4)关闭数据库. 1,DriverMan ...
- Java数据库操作大全
1.提取单条记录 //import java.sql.*; Connection con=null; Statement stmt=null; ResultSet %%6=null; try { Cl ...
随机推荐
- 阿里云composer 镜像
2019年12月2日13:54:32 https://developer.aliyun.com/composer 阿里云的镜像更新时间比较及时 本镜像与 Packagist 官方实时同步,推荐使用最新 ...
- Guide of Apache Directory Studio
Default User and Password admin secret
- spark 性能优化简要总结
1.从同一个数据源尽量只创建一个rdd,后续业务逻辑复用该rdd2.如果要对某个rdd进行多次的transformation或action操作,应当持久化该rdd3.从数据源读取到rdd后,要尽早的进 ...
- POJ 2386 DFS深搜入门
题目链接 Time Limit: 1000MS Memory Limit: 65536K Description Due to recent rains, water has pooled in va ...
- python 的技巧
pi = 0 n = 100 for k in range(n): pi+=1/pow(16,k)*(\ #一行不够写或不易读时用\,则多行与一行一样 4/(8*k+1)-2/(8*k+4)-\ 1/ ...
- PHP设计模式 - 状态模式
状态模式当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类.状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况.把状态的判断逻辑转移到表示不同状态的一系列类中,可以 ...
- 简述 高性能Linux服务器 模型架构 设计
主要从三个方面进行分析: 1.事件处理模式 2.并发模式 一.事件处理模式 1.Reactoor模式 定义: 主线程只负责监听文件描述符上是否有事件发生,有的话立即将该事件通知工作线程,除此之外,主线 ...
- Java开发笔记(一百四十四)实现FXML对应的控制器
前面介绍了如何通过fxml文件编排界面布局,可是光有静态界面根本没法处理业务,必须另外书写业务逻辑的代码,方能响应各按钮的单击事件,并将业务结果即使呈现到界面上.显然,fxml内部写不了Java代码, ...
- drf源码系列
过滤器 对查询出来的数据进行筛选可写可不写 from rest_framework.filters import BaseFilterBackend 源码 ''' def filter_queryse ...
- 【Python爬虫案例学习】python爬取淘宝里的手机报价并以价格排序
第一步: 先分析这个url,"?"后面的都是它的关键字,requests中get函数的关键字的参数是params,post函数的关键字参数是data, 关键字用字典的形式传进去,这 ...