java学习日记(三)

  • 前言
    昨天主要是讲了两部分
    一:连接外部文件并进行操作
    二:java进行数据库连接
  • java连接外部TXT文件
    1.对要做的程序进行需求分析和设计
    统计每个省份的学生人数,男生个数,女生个数
    分析:
    1:系统读取用户信息文件(姓名、籍贯、性别)
    2:系统生成一个文件(省份、学生总数、男生个数、女生个数)
    设计:
  1. 数据结构(省份信息类):省份名称,男生人数,女生人数
  2. 程序流程设计:
    1:创建文件的输入流
    2:使用while循环逐行读取文件
    3:对每一行的信息进行切割(使用\t分割)得到一个长度为3的数组
    4:对每个数组进行统计,遍历保存省份信息的list
    If省份在list中不存在,则创建一个对应该省份的对象添加到list中
    Else 找到该省份对象,判断该学生的性别
    If学生性别 is 男,则在对象男生个数的基础上+1
    Else 则在对象女生个数基础上+1
    5:创建一个文件“统计表”统计
    6:创建输出流
    7:循环遍历list集合,将省份名称+‘\t’+男生个数+女生个数+总数
    8:关闭文件流
    代码实现:
    省份信息类:
package Study;
//省份信息类
public class Province {
	private String proName;//省份名称
	private int boyNum;//男生个数
	private int girlNum;//女生个数
	//get和set方法分别用于获取和修改私有属性的内容
	//eclipse提供了快速生成getter和setter的快捷键:右键,source,generate:getters和setters
	public String getProName() {
		return proName;
	}
	public int getGirlNum() {
		return girlNum;
	}
	public void setGirlNum(int girlNum) {
		this.girlNum = girlNum;
	}
	public void setProName(String proName) {
		this.proName = proName;//this是引入变量
	}
	public int getBoyNum() {
		return boyNum;
	}
	public void setBoyNum(int boyNum) {
		this.boyNum = boyNum;
	}
	public void addBoy() {
		this.boyNum++;
	}
	public void addGirl() {
		this.girlNum++;
	}
	
}

好的编译工具真的很重要
//get和set方法分别用于获取和修改私有属性的内容
//eclipse提供了快速生成getter和setter的快捷键:右键,source,generate:getters和setters
可以很方便的生成函数
连接文件部分:

package Study;
import java.io.*;
import java.util.*;
public class StudentNumCount {
	static List proList=new LinkedList<>();
	//先定义读取文件并统计人数的方法
	private static Province returnProvince(String proName) {
		for(int i=0;i

主要还是对列表项的应用

  • 连接数据库
    我是用mysql连接的数据库
    使用jdbc连接数据库:jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf8
    这是8.0以下版本的,8.0及以上需要另一端代码。网上应该有
    如何使用java编程获取数据库连接?
    几个要素:
    url:jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf8
    2 DriverClass(数据库驱动)
    5.0: com.mysql.jdbc.Driver
    3.username
    4.password
    使用JDBC必须了解的几个api类或接口
    Jdk中所有的用于访问数据库的类和接口都被封装在java.sql包和javax.sql包
    Connection:接口,用于保存数据库连接
    DriverManager:驱动管理器。用于保存已经注册的数据库驱动信息且用于创建数据库连接
    用于执行sql语句的接口有三个,其中两个比较常用
    1:statement:接口。用于执行静态的sql语句
    2:preparedStatement:接口。既能执行动态又能执行静态
    3:CaliableStatement:接口,专门用于执行数据库的存储过程及函数
    ResultSet:用于保存执行查询语句后数据库返回的结果集
    实现代码:
    工具类:
package cn.edu.hebeu.smsys.jdbc;
//定义一个访问数据库连接的工具类

import java.sql.Connection;
import java.sql.DriverManager;

public class DButils {
	public static final String URL="jdbc:mysql://localhost:3306/smsys?characterEncoding=utf8";
	public static final String DRIVER_CLASS="com.mysql.jdbc.Driver";
	public static final String USERNAME="root";
	public static final String PASSWORD="123";
	public static Connection getConnection()throws Exception{
		Class.forName(DRIVER_CLASS);//加载(注册)数据库驱动
		return DriverManager.getConnection(URL,USERNAME,PASSWORD);
	}
}

主界面:

package cn.edu.hebeu.smsys.jdbc;

import java.sql.*;
import com.mysql.jdbc.Statement;

public class TestJDBC {
//使用jdbc执行sql语句完成访问数据库操作
	public static void addimp(Connection conn)throws Exception {
		String sql="insert into text values('ccc','100')";
		Statement st =(Statement) conn.createStatement();//创建一个sql执行器
		if(st.executeUpdate(sql)>0)//记录成功添加
			System.out.println("成功");
		else
			System.out.println("失败");		
	}
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		Connection conn=DButils.getConnection();
		System.out.println("连接信息:"+conn);
		addimp(conn);
	}

}

另外一些课上做的笔记:

你可能感兴趣的:(学习总结,java)