public void actionPerformed(ActionEvent e) {
if (egetSource() == jmi_wrap){//如果jmi_wrap对象触发了某个事件,则进入该if下面的代码
if (jmi_wrapisSelected())//如果jmi_wrap被选中
jtasetLineWrap(true);//jta被设置成自动换行
else
jtasetLineWrap(false);}//否则不自动换行
else if(egetSource()==jmi_font){//但如果jmi_font对象触发了事件
new FileDialog(Jishibenthis)setVisible(true);//新创建一个并显示一个对话框窗口,用户可以从中选择文件。并且设置为可见状态
}
}
}
}
这个 按照我的理解
首先自定义注解要有自己的编译解释方法的
在这个便已解释方法中估计需要连接数据库(当然最基本的jdbc什么的)
当然连接数据库什么的涉及到配置文件
通过jdbc获取到数据库信息 把注解中的参数与数据库中的信息关联(简单的就可以存成List<Map等方式)由于注解的参数一般是类名。你可以 用反射的方式或其他方式(比如字节码什么的)来处理获取类的属性
然后 我感觉关联完了 就没啥然后了 感觉主要是在注解的编译解释方法中做写东西 当然 提高效率也可以用数据库连接池什么的
TextField t2 = new TextField(10); //这个就是一个文本框控件用户输入数据
Button btn = new Button("求素数"); //设置按钮上显示的文本
TextArea tx = new TextArea("素数为: ",10,20,1);//定义文本区域的内容以及样式
int m, n;
public void init() {
psetLayout(new FlowLayout()); //采用流式布局 也就是一个挨着一个的布局
padd(t1); //add 都是把控件添加进PANEL中去
padd(t2);
padd(btn);
padd("South", tx);
psetBackground(Colorblue); //界面主色调
btnaddActionListener(this); //给按扭添加监听器
thisadd(p); //把这个PANEL 加到FRAME中
//psetVisible(true);
addWindowListener(new WindowAdapter() { //这个是给窗体添加退出事件也就是右上角的小X按扭事件
public void windowClosing(WindowEvent e) {
Systemexit(0);
}
});
}
public void actionPerformed(ActionEvent e) { //进行素数的验证 实现监听接口的函数
m = IntegerparseInt(t1getText()); //把第一个文本框的值强行转化为 INT 类型
n = IntegerparseInt(t2getText()); //把第二个文本框的值强行转化为 INT 类型
for (int i = m; i <= n; i++) { //你的这段程序似乎有错不能实现素数验证
boolean f = true;
for (int j = 2; j < i - 1; j++) {
if (i % j == 0)
f = false;
break;
}
if (f==true) {
txappend(i+" ");
}
}
}
public static void main(String[] args) {
ShuShu f = new ShuShu(); //创建类的实例
fsetTitle("qiu sushu!"); //给窗体加标题
fsetSize(300, 300); //设置窗体大小
finit(); //初始化
fsetVisible(true); //使窗体可见
}
}
class
Shape
{
float
area()
{
return
00f;
}}class
Circle
extends
Shape
{
float
R;
Circle(float
r)
{
R
=
r;
}
float
area()
{
return
(float)31415
R
R;//31415是double类型,所以计算的时候会将整个结果自动
强制转换
为double。你上面的返回结果就不对了。
}}class
Rectange
extends
Shape
{
float
W,
H;
Rectange(float
w,
float
h)
{//这里类名写错了:Rectange
W
=
w;
H
=
h;
}
float
area()
{
return
W
H;
}}public
class
Example3_11
{
public
static
void
main(String
args[])
{
Circle
c;
Rectange
r;//这里类名写错了:Rectange
r
=
new
Rectange(30f,
40f);//这里应该是新建r对象
c
=
new
Circle(30f);//这里缺少新建c对象
Systemoutprintln("
圆面积
="
+
returnArea(c));
Systemoutprintln("长方形面积="
+
returnArea(r));
}
static
float
returnArea(Shape
s)
{
return
sarea();
}}
//导入一个包 主要用来监控控制台的输入
import javautilScanner;
public class Mymath
{
//定义一个私有的double变量
private double number;
//构造函数
public Mymath(double number)
{
thisnumber=number;
}
//将输入的数字转换成正数
public double abs()
{
if(number>=0)
return number;
else
number=-number;
return number;
}
//判断传进来的a和number,返回它们之中大的那个数
public double max(double a)
{
if(number>=a)
return number;
else
return a;
}
//进制转换
public double gcd(double number,double n)
{
if(n<0)
return -1;
else if(number<0)
return -1;
else if(n==0)
return number;
else
return gcd (n,number%n);
}
public double pow(double k)
{
double temp=1;
if(k>0)
{
for(int p=1;p<=k;p++)
temp=numbertemp;
}
return temp;
}
public double sqrt()
{
double a = number;
while((aa-number)>000001||(number-aa)>000001)
{
a=(number/a+a)/20;
}
return a;
}
private int factorial(int n)
{
int a=0;
if (n==0)
return 1;
else if (n==1)
return 1;
else
a=nfactorial(n-1);
return a;
}
public double exp()
{
if(number>=66)
{
Systemoutprintln("erorr");
return number;
}
else
{
int i=0;
double c=00;
for(double k=0000000001;k<(pow(i)/factorial(i));i++)
{
c=c+(pow(i)/factorial(i));
}
return c;
}
}
//主程序入口
public static void main(String []args)
{
//实例化一个Scanner类 并接收控制台输入(Systemin:标准输入流)
Scanner console = new Scanner(Systemin);
Systemoutprint( "the first number is : "); //打印语句
double x = consolenextDouble(); //将输入的double赋值给double型的x
//实例化Mymath类
Mymath m = new Mymath (x);
//调用Mymath的abs方法
mabs();
Systemoutprintln("abs of first number is: "+mabs());
//调用Mymath的sqrt方法
msqrt();
Systemoutprintln("Sqrt the first number = "+msqrt());
//调用Mymath的exp方法
mexp();
Systemoutprintln("exp"+"("+x+")"+"="+mexp());
//输入第二个数 并比较其与第一个数的大小
Scanner console1 = new Scanner(Systemin);
Systemoutprint( "the second number is : ");
double y = console1nextDouble();
mmax(y);
Systemoutprintln("between "+x+" and "+y+" the is max is "+mmax(y));
//输入第三个数 并将第一次输入的数转换成第三个数的进制 比如说 如果第三个数是2 那么就是将第一次输入的数转换成2进制数
Scanner console2 = new Scanner(Systemin);
Systemoutprint( "sent a number to get gcd between first number: ");
double z = console2nextDouble();
mgcd(x,z);
Systemoutprintln("The gcd is "+mgcd(x,z));
//输入第四个数 表示阶乘 如果第四个数是2 那么就返回第一个数的2次方的值
Scanner console3 = new Scanner(Systemin);
Systemoutprint( "sent a number pow of the first number: ");
int a = console3nextInt();
mpow(a);
Systemoutprintln("The "+x+" to pow "+a+" is "+mpow(a));
}
}
//大概就是这么些把,注释的并不全,其实都不怎么难,仔细点看看,运行一下就知道了。
//我并没有运行这个程序,所以我注释是基于这个程序并没有错误的基础上的。。。
// 单行注释
/
----
---- 多行注释
----
/
/
多行注释
通常类开头或方法都采用这种注释,以便于javadoc
/
代码我就不看了 直接给你找段类似的
拷下以前写的论文中部分
232 使用JDBC的一般流程
加载某个数据库的驱动(Driver类)
通常使用ClassforName(“驱动的类名“);
连接数据库
Connection con = DriverManagergetConnection(url,username,password);
得到会话
Statement stmt = concreateStatement();
执行 *** 作
Result rs = stmtexecuteQuery(“SQL查询语句”);
5 处理结果
while(rsnext()){
String col1 = rsgetString(1);
……
}
XxxDao接口的设计
XxxDao是数据持久化层对数据库进行 *** 作的接口。所有Service层对数据库的 *** 作都是通过调用DAO层相应的XxxDao接口中的方法来实现。以AdminDao为例说明XxxDao接口是如何定义的:
AdminDaojava
public interface AdminDao {
/ 登陆验证,验证指定管理理ID和密码的记录是否存在 /
public Admin getAdminByIdAndPswd(String adminId, String adminPswd);
/此接口的中其他方法省略/
//其他方法声明的代码省略
}
说明:
XxxDao接口总是被相应的XxxDaoJdbcImpl类实现,通过相应方法的重写达到具体的数据 *** 作。
XxxDao接口实现类XxxDaoJdbcImpl的设计
XxxDaoJdbcImpl是XxxDao接口的实现类,该实现类中通过对接口方法的重写,来达到对特定数据表的增删改查等 *** 作。以AdminDaoJdbcImpl为例来说明是如何进行对数据库表的 *** 作,具体 *** 作说明见代码注释:
AdminDaoJdbcImpljava
public class AdminDaoJdbcImpl implements AdminDao {
/查询指定用户ID和密码的记录是否存在。若存在返回保存此记录的对象/
public Admin getAdminByIdAndPswd(String adminId, String adminPswd) {
/调用utils包中的公共数据库连接类DatabaseConn的静态方法getConnection() 取得指定数据库的连接。/
Connection conn = DatabaseConngetConnection();
try {
/创建(MySql)数据库查询语句/
String sql = "select from t_admin where ADMIN_ID= and ADMIN_PSWD= and STATE='1'";
/ 表示预编译的 SQL 语句的对象。SQL 语句被预编译并存储在 PreparedStatement 对象中,然后可以使用此对象多次高效地执行该语 句。/
PreparedStatement prep = connprepareStatement(sql);
/数字1代表第一个问号,表示用实参adminId给sql中的第一个问号赋值。 下一句类同。在这里必须注意实参的类型和数据库中数据类型的匹配。在 这里实参String类型对应于数据库中的varchar()。/
prepsetString(1, adminId);
prepsetString(2, adminPswd);
/在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。不会返回 null。ResultSet 本身是一个interface 。 /
ResultSet rs = prepexecuteQuery();
/如果结果集中有值,表示用户输入的管理理ID和密码是有效的,这样的 记录存在。/
if (rsnext()) {
// 先把信息取出来,并实例化一个Admin对象。
Admin admin = new Admin();
adminsetAdminId(adminId);
adminsetAdminPswd(adminPswd);
adminsetAdminName(rsgetString("ADMIN_NAME"));
adminsetLastLoginTime(rsgetTimestamp("LASTLOGIN_TIME"));
adminsetLastLoginMes(rsgetString("LASTLOGIN_MES"));
adminsetAdminDesc(rsgetString("ADMIN_DESC"));
/关闭ResultSet/
rsclose();
/关闭PreparedStatement /
prepclose();
// 修改登陆时间,t_admin表中存储着用户最近一次登陆的时间
String updateLoginTime = "update t_admin set LASTLOGIN_TIME= where ADMIN_ID= ";
PreparedStatement updatePrep = conprepareStatement(updateLoginTime);
updatePrepsetTimestamp(1, new Timestamp(new javautilDate()
getTime()));
updatePrepsetString(2, adminId);
updatePrepexecuteUpdate();
updatePrepclose();
// 返回
return admin;
} else {
/如果结果集中没有值,表示用户输入的ID密码不正确。
关闭ResultSet,关闭PreparedStatement ,程序返回null。/
rsclose();
prepclose();
return null;
}
} catch (Exception e) {
eprintStackTrace();
} finally {
/在程序执行return返回前,finally语句会被执行,在这里执行必须的一 步 *** 作-关闭数据库连接。即使有异常抛出,finally{}语句照样能执行, 保证数据库连接可以安全释放,不会造成数据库出现其它数据异常等问 题。/
DatabaseConncloseConnection(conn);
}
return null;
}
/AdminDao接口中的其他方法的实现/
//其他方法的实现代码省略
}
说明:
整个对数据库 *** 作的过程就是:取得数据库连接--〉创建Sql语句--〉创建PreparedStatement 语句--〉对语句中的‘?’进行赋值--〉执行executeX() *** 作,获得结果放入ResultSet中--〉根据需求从ResultSet中获得需要的结果-->关闭ResultSet-->关闭PreparedStatement --〉断开数据库连接--〉结果返回。
以上就是关于求JAVA高手帮忙添加这段代码注释全部的内容,包括:求JAVA高手帮忙添加这段代码注释、Java自定义注解注解实现实体类与数据库表字段的映射、请把这段JAVA程序添加注释,越详细越好等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)